在App.js中,使用Expo时,react-native的默认项目会生成默认的项目(屏幕不同的项目)。
好吧,在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行是什么吗?前面的三个点是什么?
预先感谢
答案 0 :(得分:0)
第一件事第一件事:来自文档AppLoading“响应组件,如果它是应用程序中呈现的第一个也是唯一组件,则告诉Expo保持打开应用程序加载屏幕的状态。”
关于资产缓存,您还可以阅读Preloading & Caching Assets的博览会文档。 Asset.loadAsync会将每个资产数据下载到设备缓存目录中的本地文件中。
关于您提到的...,这是Destructuring Assignment的JavaScript表达式,它可以将数组中的值或对象中的属性解压缩为不同的变量。换句话说,可以理解Icon.Ionicons.font是一个数组或对象,在这种情况下,其所有项目都将作为对象的直接属性作为参数传递给Font.loadAsync()。