Expo SDK38升级-fontFamily“ FontAwesome”不是系统字体,并且尚未通过Font.loadAsync加载

时间:2020-09-06 07:52:33

标签: react-native expo

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

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

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

enter image description here

我在这里跟随将字体预加载到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]);

1 个答案:

答案 0 :(得分:0)

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

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