javascript - React 组件从 JSON 对象渲染选项卡中的动态内容

标签 javascript reactjs primereact

在我的 React 组件中,我无法从 JSON 对象呈现动态选项卡。 我能够检索 JSON 数据键和值数组,但无法在 UI 中呈现它。

我正在使用 PrimeReact UI 组件。 https://www.primefaces.org/primereact/#/tabview

组件

export default class Report extends Component {


    render() {                          

        const { splitGroupedStartingMaterials } = this.state

        return (
            <div>
                <TabView>
                    {
                        Object.keys(splitGroupedStartingMaterials).forEach(k => {
                            console.log('k : ' + k, JSON.stringify(splitGroupedStartingMaterials[k]));
                            return (<TabPanel header={'Family'}>
                                simple content here for testing
                            </TabPanel>);
                        })
                    } 
                </TabView>                              
            </div>);
        }
}                                   

JSON 数据:-

"splitGroupedStartingMaterials": {
  "1": [
    {
      "id": 45598,
      "symbol": "Mn",
      "description": "Mn(NO3)2 (fr mn flake)_[10377-66-9]",
      "priority": 1,
      "matrices": "HNO3",
      "family": "F2.0",
      "splitGroup": "1"
    },
    {
      "id": 45636,
      "symbol": "Ti",
      "description": "(NH4)2TiF6 (as Ti)_[16962-40-6]",
      "priority": 2,
      "matrices": "F- : HNO3",
      "family": "F1.1",
      "splitGroup": "1"
    }
  ],
  "2": [
    {
      "id": 45572,
      "symbol": "Cr",
      "description": "CrCl3 (fr Cr shot)_[10025-73-7]",
      "priority": 2,
      "matrices": "HCl",
      "family": "F3.1",
      "splitGroup": "1_2"
    }
  ]
}                                       

更新:-

控制台日志:-

10:46:28.769 InOrganicCreateCustomQuote.jsx:704 k : 1 [{"id":45621,"symbol":"Sc","description":"Sc2O3 (as Sc)_[256652-08-1]","priority":1,"matrices":"HNO3","family":"F2.0","splitGroup":"1"},{"id":45636,"symbol":"Ti","description":"(NH4)2TiF6 (as Ti)_[16962-40-6]","priority":2,"matrices":"F- : HNO3","family":"F1.1","splitGroup":"1"},{"id":45640,"symbol":"V","description":"V2O5 (as V)_[1314-62-1]","priority":1,"matrices":"HNO3","family":"F2.0","splitGroup":"1"}]

10:46:28.770 InOrganicCreateCustomQuote.jsx:704 k : 2 [{"id":45646,"symbol":"Zr","description":"ZrCl2O (as Zr)_[7699-43-6]","priority":1,"matrices":"HCl","family":"F3.1","splitGroup":"1_2"}]

对于此代码,不会呈现任何选项卡

enter image description here

最佳答案

你能尝试一下吗:

export default class Report extends Component {


    render() {                          

        const { splitGroupedStartingMaterials } = this.state

        return (
            <div>
                <TabView>
                    {
                        Object.keys(splitGroupedStartingMaterials).map(k => (
                            <TabPanel header={'Family'}>
                                simple content here for testing
                            </TabPanel>
                        ))
                    } 
                </TabView>                              
            </div>);
        }
}      

关于javascript - React 组件从 JSON 对象渲染选项卡中的动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59821092/

相关文章:

javascript - highcharts 如何在单击重置缩放按钮事件中捕获和插入逻辑

javascript - 从多个复杂子组件获取值的最佳方式?

ReactJS context-api 在获取数据后不会呈现

javascript - primeReact Props 和下拉选项问题

javascript - 将某个单词(或单词序列)的每次出现自动超链接到预定义的 URL(无歧义);但不显示完整网址

javascript - 悬停过渡在加载后第一次点击时不起作用,但在此之后有效?

javascript - jqgrid 不更新 editrow 上文本区域的值

javascript - React-Router错误 "Cannot read property '位置'未定义”

reactjs - 如何使用 PrimeReact FileUpload 组件上传文件

reactjs - 如何禁用 PrimeReact ListBox 中的列表项之一?