如何动态导入作为json数据的反应模块

Posted

技术标签:

【中文标题】如何动态导入作为json数据的反应模块【英文标题】:How to dynamically import react module which is json data 【发布时间】:2021-08-28 13:52:30 【问题描述】:

我有这样的模块

const RecyclerView = [

    text: 'RecyclerView data',
,

    text: 'Codes data',


];

export default RecyclerView

当我像下面这样导入和映射数据时,我得到了结果

recycle Recycler查看数据 ...

import React from "react";
import accordion from "../pages/RecyclerView";
import Home from "./Home"
import TextComponent from "./TextComponent";

export default function DecisionActivity(props) 
    //let data = Contents;

    const title, hasContent = props

    if(hasContent)

        //console.log(title);
        //where title is === RecyclerView
        // and hascontent is bool
       
        accordion.map(item=>
            console.log("recycle ", item.text);
        )

        return <TextComponent text=title/>
    
    

     return <Home/> 
      


我不想用这条线 从“../pages/RecyclerView”导入手风琴;

作为 RecyclerView(文件名是动态的,可能会有更多不同的名称 我会在 title 属性中加入组件,然后我想映射 Json 数据以从不同的组件创建我的动态 UI...

在这种情况下任何人都可以帮助我,不同的解决方案也可以提供帮助,但文件名(如 RecyclerView)应该是动态的。

提前致谢

【问题讨论】:

【参考方案1】:

使用dynamic imports 可以帮助你,我不知道你想做什么,所以我不能给你一个示例代码,但那篇文章可以帮助你。只需考虑动态导入是异步的

【讨论】:

O' 谢谢@KOseare 最后我可以使用您的链接link 解决这个问题【参考方案2】:
finally I could solve this thing using [link](https://javascript.info/modules-dynamic-imports) 

```
import(`../pages/$title.js`)
        .then(obj=>
            console.log("recycle then1 ", obj);
            let acc = obj.default;
            console.log("recycle then2 ", acc);
            acc.map(item=>
                console.log("recycle then3 ", item.text);
            )
        )
        .catch(err=>
            console.log("recycle err ", err);
        );
```
and I got the require result before I did the thing like this but I missed `let acc = obj.default;` this thing

【讨论】:

以上是关于如何动态导入作为json数据的反应模块的主要内容,如果未能解决你的问题,请参考以下文章

如何将反应应用程序创建为服务/包并将其导入另一个应用程序的“package.json”

通过反应获取 json 对象数据

javascript 反应:导入JSON数据

在反应中从json数据动态生成列表

通过变量动态导入文件 - 反应原生

如何在反应钩子中创建一个新的 JSON 对象?