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

时间:2019-10-13 22:31:06

标签: react-native fonts expo

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

的小吃

很好奇,在expo-cli中,当我运行相同的代码并打印加载状态时,首先返回false,然后返回true,然后中间显示红色屏幕,表示尚未通过Font.loadAsync加载字体。

我尝试过写应用程序类中的所有内容,而不是从另一个文件加载字体,并且行为相同

我尝试过的另一件事就像新文档说的那样,使用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”不是系统字体,并且尚未通过Font.loadAsync加载。并显示一个正方形而不是图标

环境

  • Windows 10
  • sdkVersion:35.0.0,
  • 博览会:^ 35.0.0“,
  • 展览字体:〜7.0.0

1 个答案:

答案 0 :(得分:1)

我创建了工作示例: 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