【问题标题】:Undefined is not an object (evaluating '_expo.Asset.loadAsync')未定义不是对象(评估'_expo.Asset.loadAsync')
【发布时间】:2019-12-12 09:32:51
【问题描述】:

我正在使用 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 });
  }

【问题讨论】:

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


    【解决方案1】:

    这在类似的代码中对我有用:

    安装:

    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 });
    }
    

    【讨论】:

      【解决方案2】:

      您没有显示导致错误的代码。但是您似乎调用了Expo 的整个模块。

      也许你用过import * as Expo from "expo"Expo.Asset.loadAsync

      对于SDK 33,我们不推荐从expo 包中导入大多数模块。每个模块都必须安装和使用。

      你可以运行expo install expo-asset

      import { Asset } from 'expo-asset';
      ...
      Asset.loadAsync(modules)
      

      如果你想像现在这样使用它,你可以使用这个模块。 expo-codemod

      【讨论】:

        猜你喜欢
        • 2016-12-04
        • 2019-09-26
        • 2019-08-16
        • 2017-01-16
        • 2020-08-06
        • 2020-01-09
        • 2017-05-03
        • 2023-03-07
        • 1970-01-01
        相关资源
        最近更新 更多