未定义不是对象(评估'_expo.Asset.loadAsync')

时间:2019-08-04 17:29:17

标签: react-native expo mobile-development react-native-elements

我正在使用React-Native创建一个项目,目前,当我尝试编译代码时,出现错误提示undefined is not an object (evaluating '_expo_.Asset.loadAsync')

我不确定是什么原因造成的,因为在编译项目之前我输入了很多代码。但是,从我收集的数据来看,这可能与我导入的字体有关?

目前,这是我导入字体时的代码。

async componentDidMount() {
    await cacheFonts({
      georgia: require('../assets/fonts/Georgia.ttf'),
      regular: require('../assets/fonts/Montserrat-Regular.ttf'),
      light: require('../assets/fonts/Montserrat-Light.ttf'),
    });

    this.setState({ fontLoaded: true });
  }

2 个答案:

答案 0 :(得分:3)

这通过类似的代码为我工作:

安装:

  

npm install expo-font

import * as Font from 'expo-font'; 
...
...

async componentDidMount() {
    await Font.loadAsync({
        'josefin-sans-regular': require('./assets/fonts/JosefinSans-Regular.ttf')
    });
    this.setState({ fontLoaded: true });
}

答案 1 :(得分:0)

您没有显示引起错误的代码。但是您似乎已经调用了parallel -P 500 --slf file.txt --nonall SCRIPT_PATH "arguments" 的整个模块。

也许您使用了Expoimport * as Expo from "expo"

对于Expo.Asset.loadAsync,我们不建议从SDK 33包中导入大多数模块。每个模块都必须安装和使用。

您可以运行expo

expo install expo-asset

如果您想按原样使用它,则可以使用此模块。 expo-codemod