1

我已经被这个问题困扰了很长时间,经过几个小时的谷歌搜索,我决定发布这个问题。

错误如下:

console.error: "fontFamily "ionicons" is not a system font and has not been loaded through Font.loadAsync.

- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.

- If this is a custom font, be sure to load it with Font.loadAsync."

__expoConsoleLog
    RemoteConsole.js:80:37
error
    YellowBox.js:59:8
error
    muteWarnings.fx.js:26:24
processFontFamily
    Font.js:35:16
diffProperties
    ReactNativeRenderer-dev.js:3545:38
addNestedProperty
    ReactNativeRenderer-dev.js:3419:6
diffProperties
    ReactNativeRenderer-dev.js:3556:8
createInstance
    ReactNativeRenderer-dev.js:4003:29
completeWork
    ReactNativeRenderer-dev.js:14437:12
completeUnitOfWork
    ReactNativeRenderer-dev.js:17094:10
performUnitOfWork
    ReactNativeRenderer-dev.js:17304:30
workLoop
    ReactNativeRenderer-dev.js:17316:41
renderRoot
    ReactNativeRenderer-dev.js:17417:15
performWorkOnRoot
    ReactNativeRenderer-dev.js:18423:17
performWork
    ReactNativeRenderer-dev.js:18324:24
performSyncWork
    ReactNativeRenderer-dev.js:18285:14
batchedUpdates$1
    ReactNativeRenderer-dev.js:18531:21
batchedUpdates
    ReactNativeRenderer-dev.js:2611:31
_receiveRootNodeIDEvent
    ReactNativeRenderer-dev.js:2706:17
receiveTouches
    ReactNativeRenderer-dev.js:2782:28
__callFunction
    MessageQueue.js:366:47
<unknown>
    MessageQueue.js:106:26
__guard
    MessageQueue.js:314:10
callFunctionReturnFlushedQueue
    MessageQueue.js:105:17

我能做些什么呢?我已经尝试了几乎所有内容,并且还下载了所需的字体。谢谢。

4

2 回答 2

0

在你的App.js你可以使用这样的东西:

  state = {
    fontLoaded: false,
  };

  componentDidMount() {
    this.loadAssets();
  }

  async loadAssets() {
    const fontAssets = cacheFonts([
      { ionicons: require('../assets/fonts/ionicons.ttf') }, //for custom fonts
      Feather.font, // for the @expo/vector-icons
    ]);

    await Promise.all([...fontAssets]);

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

  render() {
    if (!this.state.fontLoaded) {
      return <AppLoading />;
    }
    return (
      <Provider store={store}>
        <RootNavigation {...this.props} />
      </Provider>
    );
  }
于 2019-08-22T12:29:56.477 回答
0

如果您的项目结构类似于 Kitten Tricks 应用程序,请查看应用程序根目录。这包括一个字体映射,它被传递到Font.loadAsync(),就像它在Expo 文档中描述的那样

于 2019-08-26T06:31:44.293 回答