我一直试图动态加载React Native组件,但没有成功。当您尝试将存储在变量中的模块路径传递给React Native时,React Native似乎一点也不喜欢它:
这非常有效- React.lazy:
const OtherComponent = React.lazy(() => import('./path/to/my/module'));
这也像一个充满魅力的动态导入:- 完全动态导入:@可加载/组件
- (可加载/组件时的npm)*
import loadable from '@loadable/component'
const AsyncPage = loadable(props => import('./path/to/my/module'))
但请尝试将any更改为:
var myModulePath = './path/to/my/module';
const AsyncPage = loadable(props => import(myModulePath))
或以下内容:
const OtherComponent = React.lazy(() => import(myModulePath));
一切都变得疯狂!
我如何动态地加载一个模块,比如说在 runtime,或者只是将路径暂时保存在一个变量中,而不是将其作为string literal
传递
从文档(完全动态导入:@可加载/组件),
import loadable from '@loadable/component'
const AsyncPage = loadable(props => import(`./${props.page}`))
动态生成的路径应该可以使用,但我的 * ReactNative * 尝试却不行。
有什么好主意吗?
提前感谢大家。
1条答案
按热度按时间bis0qfac1#
您可以使用https://github.com/microsoft/react-native-code-push执行此操作
关于延迟加载,如果你使用爱马仕JS引擎就不需要,否则你可以使用RAM bundler:https://reactnative.dev/docs/ram-bundles-inline-requires