我不明白如何使用它或它的作用,_loadResourcesAsync从反应本机博览会默认项目与屏幕

时间:2018-10-19 08:57:35

标签: javascript react-native asynchronous expo

在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行是什么吗?前面的三个点是什么?

预先感谢

1 个答案:

答案 0 :(得分:0)

第一件事第一件事:来自文档AppLoading“响应组件,如果它是应用程序中呈现的第一个也是唯一组件,则告诉Expo保持打开应用程序加载屏幕的状态。”

关于资产缓存,您还可以阅读Preloading & Caching Assets的博览会文档。 Asset.loadAsync会将每个资产数据下载到设备缓存目录中的本地文件中。

关于您提到的...,这是Destructuring Assignment的JavaScript表达式,它可以将数组中的值或对象中的属性解压缩为不同的变量。换句话说,可以理解Icon.Ionicons.font是一个数组或对象,在这种情况下,其所有项目都将作为对象的直接属性作为参数传递给Font.loadAsync()。