javascript - 在 react 中创建动态组件

标签 javascript json reactjs

我想从 json 创建一个动态组件, 有什么想法吗?

目前我尝试像这样生成它们

 getMenu(){
  var pages  = {
        name : "Parcs",
        title : "Bienvenue sur la parc toto",
        Components : [
            "HeaderSocial",
            "HeaderFull",
            "Menu",
            "ParcsSlider",
            "TabMenu",
            "Footer"
        ],
    }

    var panel = [];
    var tmp;


    for (let i = 0; i <Object.keys(pages.Components).length; i++){

        tmp = Object(pages.Components)[i];
        panel.push('<' +  {tmp} + "/>");
    }
    console.log(panel)
    return (panel);
}

这个例子失败了......有什么想法吗?

最佳答案

问题:

Object.keys(pages.Components) -> 这已经是数组了,为什么要使用 Object.keys()

'<' + {tmp} + "/>" ,这应该是'<' + tmp + "/>"

更改for循环

for (let i = 0; i <Object.keys(pages.Components).length; i++){
    tmp = Object(pages.Components)[i];
    panel.push('<' +  {tmp} + "/>");
}

for (let i = 0; i < pages.Components.length; i++){
    panel.push(React.createElement(pages.Components[i])));
}

或者简单地(正如 @Rajesh 在评论中建议的那样)

return pages.Component.map(x=> React.createElement(pages.Components[i])))

关于javascript - 在 react 中创建动态组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47153478/

相关文章:

javascript - 如何使用javascript在json中动态添加两个键值并显示在另一个键值中

使用带有长字符串 Json 的 System.IO.StreamWriter 的 C# 文件限制

ruby-on-rails - Rails 对象关系和 JSON 渲染

javascript - 值的状态未更新

javascript - 如何为多个 div 的内部/外部事件 'click' 设置条件?

javascript - Puppeteer 和浏览器WSEndpoint : can't upload files dynamically

javascript - 来自 safari/webkit 中 ajax 调用的 json 对象的奇怪行为

reactjs - React 测试库中的类型 'value' 不存在属性 'HTMLElement'

android - react native : Update view (ListView) on navigator pop

Javascript 'type error Uncaught TypeError: Cannot set property ' backgroundColor'未定义'但有效