【发布时间】:2017-11-02 18:05:18
【问题描述】:
我正在使用 Expo 和 create-react-native 应用程序。我喜欢手机上的实时/热加载功能,但我想知道自定义字体。
https://docs.expo.io/versions/v17.0.0/guides/using-custom-fonts.html#loading-the-font-in-your-app
Expo API 仅具有异步加载它们的说明。我是否必须在我想要自定义字体的每个组件上执行此操作?当我已经加载过一次时,这似乎会导致一些不必要的调用。
有没有办法将字体设置为全局字体或在加载后通过道具传递?似乎他们通过该链接中的最后一行建议了这种方法:
注意:通常,您需要先加载应用程序的主要字体 显示应用程序以避免字体加载后文本闪烁。 推荐的方法是将 Font.loadAsync 调用移动到您的 顶级组件。
...但他们没有解释如何做到这一点,如果这是他们的暗示的话。
所以我的问题是:
1) 多次(在每个组件上)加载自定义字体会导致性能问题吗? (或者也许它是在第一个之后从缓存中拉出来的?)
2) 加载后可以通过属性传递字体还是设置为全局字体?
最后
3) 这是世博会唯一的问题吗?还是只有 create-react-native 应用程序的问题?还是只是 livereload/hotloading 问题?
另外请注意,我正在使用 Windows/Android
【问题讨论】:
-
好吧,所以我对 Expo 及其与 react-native 的关系有点困惑。似乎构建在 react-native 之上的模块使一些事情变得更容易,但其他事情变得更加困难。权衡是试图让开发人员编写更多的 JS 并摆脱本机代码的“杂草”。所以回答#3,这是一个世博会唯一的问题。我不确定它是否真的会伤害性能,或者您是否可以将其传递出去,但 #1 和 #2 仍然处于打开状态......
标签: react-native fonts expo