1

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

2 回答 2

5

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

安装 :

npm 安装博览会字体

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

async componentDidMount() {
    await Font.loadAsync({
        'josefin-sans-regular': require('./assets/fonts/JosefinSans-Regular.ttf')
    });
    this.setState({ fontLoaded: true });
}
于 2019-08-05T01:18:55.670 回答
4

您没有显示导致错误的代码。但是您似乎已经调用了Expo.

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

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

你可以跑expo install expo-asset

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

如果你想像现在这样使用它,你可以使用这个模块。博览会代码模式

于 2019-08-05T05:03:50.703 回答