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

Undefined is not an object (evaluating '_expo.Asset.loadAsync')

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

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

安装:

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

您没有显示导致错误的代码。但是你好像调用了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