Create-React-Native-App - 使用原生模块
Create-React-Native-App - using native modules
我有一个关于将本机模块与 react-native 应用程序一起使用的问题。
如所述here,使用 CRNA 创建的应用程序似乎不应该与本机模块一起使用。现在还是这样吗?
最近我能够将 @shoutem/ui
模块与我使用 CRNA 创建的应用程序集成(据我所知,这是本机模块,因为它需要我 运行 react-native link 命令),它在我的 android 和 ios 手机以及 ios 模拟器上工作得很好。
正如 this PR 解释的那样,使用 react-native link 应该会显示错误消息,但我根本无法观察到它。
有什么变化吗?这真是令人困惑。或者我对 react-native 中原生模块的理解是错误的?
如果您导入了工具包中使用的字体(如 this Github issue 中所述):
async componentWillMount() {
await Font.loadAsync({
'Rubik-Black': require('./node_modules/@shoutem/ui/fonts/Rubik-Black.ttf'),
'Rubik-BlackItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BlackItalic.ttf'),
'Rubik-Bold': require('./node_modules/@shoutem/ui/fonts/Rubik-Bold.ttf'),
'Rubik-BoldItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BoldItalic.ttf'),
'Rubik-Italic': require('./node_modules/@shoutem/ui/fonts/Rubik-Italic.ttf'),
'Rubik-Light': require('./node_modules/@shoutem/ui/fonts/Rubik-Light.ttf'),
'Rubik-LightItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-LightItalic.ttf'),
'Rubik-Medium': require('./node_modules/@shoutem/ui/fonts/Rubik-Medium.ttf'),
'Rubik-MediumItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-MediumItalic.ttf'),
'Rubik-Regular': require('./node_modules/@shoutem/ui/fonts/Rubik-Regular.ttf'),
'rubicon-icon-font': require('./node_modules/@shoutem/ui/fonts/rubicon-icon-font.ttf'),
});
this.setState({fontsLoaded: true});
}
使用 Shoutem UI 工具包组件应该不会有问题。
字体链接到应用程序的二进制文件中,因此被视为本机依赖项。
我有一个关于将本机模块与 react-native 应用程序一起使用的问题。
如所述here,使用 CRNA 创建的应用程序似乎不应该与本机模块一起使用。现在还是这样吗?
最近我能够将 @shoutem/ui
模块与我使用 CRNA 创建的应用程序集成(据我所知,这是本机模块,因为它需要我 运行 react-native link 命令),它在我的 android 和 ios 手机以及 ios 模拟器上工作得很好。
正如 this PR 解释的那样,使用 react-native link 应该会显示错误消息,但我根本无法观察到它。
有什么变化吗?这真是令人困惑。或者我对 react-native 中原生模块的理解是错误的?
如果您导入了工具包中使用的字体(如 this Github issue 中所述):
async componentWillMount() {
await Font.loadAsync({
'Rubik-Black': require('./node_modules/@shoutem/ui/fonts/Rubik-Black.ttf'),
'Rubik-BlackItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BlackItalic.ttf'),
'Rubik-Bold': require('./node_modules/@shoutem/ui/fonts/Rubik-Bold.ttf'),
'Rubik-BoldItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BoldItalic.ttf'),
'Rubik-Italic': require('./node_modules/@shoutem/ui/fonts/Rubik-Italic.ttf'),
'Rubik-Light': require('./node_modules/@shoutem/ui/fonts/Rubik-Light.ttf'),
'Rubik-LightItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-LightItalic.ttf'),
'Rubik-Medium': require('./node_modules/@shoutem/ui/fonts/Rubik-Medium.ttf'),
'Rubik-MediumItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-MediumItalic.ttf'),
'Rubik-Regular': require('./node_modules/@shoutem/ui/fonts/Rubik-Regular.ttf'),
'rubicon-icon-font': require('./node_modules/@shoutem/ui/fonts/rubicon-icon-font.ttf'),
});
this.setState({fontsLoaded: true});
}
使用 Shoutem UI 工具包组件应该不会有问题。
字体链接到应用程序的二进制文件中,因此被视为本机依赖项。