作者:林姗飘零1999 | 来源:互联网 | 2023-08-27 20:09
上下文
我有几个React Native应用,它们共享一些组件和助手。
因此,我创建了一个存储共享代码的库,并通过将其作为依赖项添加到各自的package.json
中来在我的应用程序中使用它。
在自定义库中,我使用react-native.config.js
链接某些字体
module.exports = {
assets: ['./assets/fonts']
};
在我的应用中,我执行npx react-native link my-custom-library
来链接这些字体。
现在,此共享库也正在使用react-native-community/react-native-localize。
而且我不知道如何在我的应用程序中链接它?
我在这里有2个问题:
- 为什么我需要对字体进行
npx react-native link my-custom-library
?
React Native 60 的自动链接功能是否应该自动为我执行此操作?
- 如何使用此设置链接
react-native-localize
?
1)关于RN 0.60+的字体:
- 您应该有一个
react-native.config.js
具有以下内容:
module.exports = {
project: {
ios: {},android: {},assets: ['./src/assets/fonts','react-native-vector-icons'],// Add the rn-vector icons in the above array only if you use that module,or your too.
};
- 运行react-native链接,您应该看到如下日志:
信息将资产链接到ios项目信息将资产链接到android
项目成功资产已成功链接到您的项目
-
在Info.plist文件中添加字体:
UIAppFonts
AntDesign.ttf
Entypo.ttf
EvilIcons.ttf
Feather.ttf
FontAwesome.ttf
FontAwesome5_Brands.ttf
FontAwesome5_Regular.ttf
FontAwesome5_Solid.ttf
Foundation.ttf
Ionicons.ttf
MaterialIcons.ttf
MaterialCommunityIcons.ttf
SimpleLineIcons.ttf
Octicons.ttf
Zocial.ttf
-
在Run Script Only When Installing
中检查Xcode->YourProjectTarget->BuildPhases-> Copy Pods Resources
- 确保您清除了所有缓存:
rm -rf $TMPDIR/react- && rm -rf $TMPDIR/metro- && rm -rf $TMPDIR/haste-* && watchman watch-del-all && rm -rf ios/build
并重新启动JS服务器。
此处提供来源和更多信息:
https://medium.com/@mehran.khan/ultimate-guide-to-use-custom-fonts-in-react-native-77fcdf859cf4
没有react-native link命令,我无法使字体工作,而且似乎其他人也遇到了这个问题。
2)关于react-native-localize
如果您已经手动链接了它,只需运行react-native unlink react-native-localize
,然后转到ios
文件夹并运行pod install
。
第use_native_modules
行(来自Podfile
)将使pod安装程序从node_modules搜索库文件夹中的pod spec文件(RNLocalize.podspec
)并安装并自动链接。
注释:
- 此答案已在iOS模拟器上的RN 0.61.4中进行了测试
- 提示如何链接提供我在这里找到的字体的库:
https://github.com/oblador/react-native-vector-icons/issues/1041