javascript - 我不明白如何使用它或它做什么,_loadResourcesAsync 来自 react native expo default project with screen
问题描述
在您使用 Expo 时 react-native 生成的默认项目的 App.js 中(具有不同屏幕的项目)。
好吧,在 App.js 中。
render() {
if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) {
return (
<AppLoading
startAsync={this._loadResourcesAsync}
onError={this._handleLoadingError}
onFinish={this._handleFinishLoading}
/>
);
} else {
return (
<View style={styles.container}>
{Platform.OS === 'ios' && <StatusBar barStyle="default" />}
{/* <Text>{User.nom}</Text> */}
<AppNavigator style={styles.container} />
</View>
);
}
}
_loadResourcesAsync = async () => {
return Promise.all([
Asset.loadAsync([
require('./assets/images/icon_llaurar.jpg'),
require('./assets/images/icon_podar.jpg'),
require('./assets/images/icon_ensofatar.jpg'),
]),
Font.loadAsync({
// This is the font that we are using for our tab bar
...Icon.Ionicons.font,
// We include SpaceMono because we use it in HomeScreen.js. Feel free
// to remove this if you are not using it in your app
'space-mono': require('./assets/fonts/SpaceMono-Regular.ttf'),
}),
]);
};
我真的不明白它的作用,或者如何使用加载的资产。我仍然必须导入所有屏幕上的每个资产才能使用它,所以我不知道如何处理它或它做了什么。
另外,有人可以解释一下 ...Icon.Ionicons.font 这行是做什么的吗?前面的三个点是什么?
提前致谢
解决方案
第一件事第一件事:来自文档AppLoading “(...)React 组件,它告诉 Expo 如果它是您的应用程序中呈现的第一个也是唯一一个组件,则保持应用程序加载屏幕打开。” .
关于资产缓存,您还可以阅读Preloading & Caching Assets的 expo 文档。Asset.loadAsync 会将每个资产数据下载到设备缓存目录中的本地文件中。
关于您提到的 ...,这是Destructuring Assignment的 JavaScript 表达式,它可以将数组中的值或对象中的属性解压缩到不同的变量中。换句话说,可以理解 Icon.Ionicons.font 是一个数组或对象,在这种情况下,它的所有项目都将作为作为参数传递给 Font.loadAsync() 的对象的直接属性传播。
推荐阅读
- java - 重绘方法无法正常工作(在 timer.stop() 之后重绘)
- javascript - 使用 jQuery 获取嵌套列表中的上一个立即 li 项
- c++ - test1.cpp:9:77:错误:不匹配调用 '(const std::normal_distribution
) (std::mt19937&)' - ace-editor - ACE 编辑器:如何通过代码折叠第 11 行的折叠?
- json - Laravel - 带有参数的 Guzzle 发布请求
- java - CodenameOne 展开完整的树
- php - 如何使用 Bootstrap 4 解决此布局,以调整行中列之间的空间
- javascript - 在错误 3 秒后反应 setTimeout
- ios - 如何在较低的表格视图中启动我的单元格?
- c - C 语言中的 while(*pointer) 合法吗?