gpt4 book ai didi

reactjs - 通过变量动态导入文件 - React Native

转载 作者:行者123 更新时间:2023-12-03 13:44:54 25 4
gpt4 key购买 nike

我有一个包含组件路径的 path.json 文件

// path.json

{
"main": "./login/index.js",
"paths": [
{
"name": "login",
"path": "./login/index.js",
"image": ""
}
]
}

我想在 native react 中动态加载'./login/index.js'文件并渲染此特定文件

我当前的实现

const MyComponent = createLazyContainer(() => {
const componentPath = PathJson.main; // ./login/index.js
return import(`${componentPath}`); //import error here @ line 7
});

export default MyComponent;

我收到以下错误:

Invalid call at line 7: import("" + componentPath)

最佳答案

人们在线程中告诉您的内容是正确的,但我想添加一种可能的解决方案。所有导入/需求都在编译时解决,而不是在您尝试执行的运行时解决。当您运行应用程序时,如果您尚未导入这些文件,则无法使用它们。

有一个解决方法,假设您提前知道所有可能的文件,这就是做类似工厂的事情:

const possiblePaths = {
'one': require('path/to/file/1'),
'two': require('path/to/file/2')
}

function(type){
return possiblePaths[type];
}

然后你以某种方式使用它:

render(){
const MyComponent = function('one');

return <MyComponent/>;
}

这或多或少是伪代码,我不能立即工作,但希望你能明白。您需要存储对可能需要的每个导入的引用,然后不要使用导入,而是使用在编译时为您创建的引用。

关于reactjs - 通过变量动态导入文件 - React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60562457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com