【问题标题】:Expo SDK38 upgrade - fontFamily "FontAwesome" is not a system font and has not been loaded through Font.loadAsyncExpo SDK38 升级 - fontFamily "FontAwesome" 不是系统字体,未通过 Font.loadAsync 加载
【发布时间】:2020-12-24 22:50:10
【问题描述】:

由于我已升级到 Expo SDK 38,因此在启动我的应用程序时出现此错误。我需要升级到 SDK38,因为 Android 不允许我发布更低的版本。

这在 SDK37 上运行良好,我唯一改变的是我已经使用 expo upgrade 升级了所有包,还有一个错误 error: unknown option --assetExts 所以我不得不从 app.json 中删除它,这可能成为原因。我将 assetExts 更改为 sourceExts 使其编译,但也许这会停止字体工作..

"packagerOpts": {         
    "assetExts": ["otf", "ttf"]    
},

我正在按照此处的示例在我的 App.js 中预加载字体,这是我能找到的所有其他答案的建议,但仍然出现错误。

我还尝试删除我的 node_modules、package.json.lock 和 .expo 文件夹,但都没有帮助。

https://docs.expo.io/guides/preloading-and-caching-assets/#pre-loading-and-caching-assets

import { FontAwesome } from "@expo/vector-icons";

function cacheFonts(fonts) {
    return fonts.map((font) => Font.loadAsync(font));
}

const fontAssets = cacheFonts([FontAwesome.font]);
await Promise.all([...fontAssets]);

【问题讨论】:

    标签: react-native expo


    【解决方案1】:

    原来这是一个缓存问题,代码绝对没问题。我以为我已经清除了所有内容,但显然没有。

    再次删除 node_modules、package.json.lock 并安装 npm 并正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      相关资源
      最近更新 更多