【问题标题】:since expo 34.0.0 update fonts doesn´t load anymore, do you know how can I fix it?由于 expo 34.0.0 更新字体不再加载,你知道我该如何解决吗?
【发布时间】:2020-02-10 13:50:31
【问题描述】:

我有 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 中,当我运行相同的代码并打印加载状态时,首先返回 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

【问题讨论】:

    标签: react-native fonts expo


    【解决方案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

    【讨论】:

    • 谢谢,真的很有帮助。不知道为什么官方文档不能这样写。
    猜你喜欢
    • 2011-12-27
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2020-10-20
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多