javascript 如何从存储在变量中的路径延迟加载React Native模块

6psbrbz9  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(127)

我一直试图动态加载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 * 尝试却不行。
有什么好主意吗?
提前感谢大家。

bis0qfac

bis0qfac1#

您可以使用https://github.com/microsoft/react-native-code-push执行此操作
关于延迟加载,如果你使用爱马仕JS引擎就不需要,否则你可以使用RAM bundler:https://reactnative.dev/docs/ram-bundles-inline-requires

相关问题