由于 expo 34.0.0 更新字体不再加载,您知道我该如何解决吗?

since expo 34.0.0 update fonts doesn´t load anymore, do you know how can I fix it?

我有 expo 30 proyect 并且字体(fontello 图标)现在加载成功 3 个月后我在更新 expo 之前重新打开 proyect,即使我创建了一个新的 proyect 字体也没有加载 (我已经将导入更改为 import { Font } from 'expo';import * as Font from 'expo-font';) 这是有问题的点心https://snack.expo.io/@emmalv/bold-banana

奇怪的是,在 expo-cli 中,当我 运行 相同的代码并首先打印加载状态时 return false 和 true 之前立即显示红屏,表示字体尚未加载通过 Font.loadAsync

我已经尝试在应用程序中设置所有内容 class 而不是从另一个文件加载字体并且行为是相同的

我试过的另一件事就像新文档所说的那样,使用 expoAssetId

const expoAssetId = require("assets/fonts/custom-icon-font.ttf");
const Icon = createIconSetFromFontello(fontelloConfig, 'FontName', expoAssetId);

但我收到另一个错误

C.replace is not a function. (In 'C.replace(/\.(otf|ttf)$/,'')', 'C.replace' is undefined)

预期行为 图标加载并正确显示 实际行为 加载时抛出异常 'fontFamily "../assets/fonts/sowaicons" is not a system font and has not been loaded through Font.loadAsync.' 并显示一个正方形而不是图标

环境

我创建了工作示例: https://snack.expo.io/@djalik/custom-fonts

更改 CustomIcon 代码:

import { createIconSetFromFontello } from '@expo/vector-icons';
import fontelloConfig from '../assets/fonts/config.json';
// const ttf = require("../assets/fonts/sowaicons.ttf");
// import myfont from "../assets/fonts/sowaicons.ttf";
const Icon = createIconSetFromFontello(fontelloConfig, 'sowaicons'); 

并将 this.state.setState... 替换为 this.setState