javascript - 尝试在 React JS 中渲染对象数组时出错

标签 javascript reactjs

未捕获错误:对象作为 React 子对象无效(已找到:具有键 {titlesCollection} 的对象)。如果您打算呈现子集合,请改用数组

我在尝试渲染对象数组时遇到此错误,我在这里做错了什么?

import * as React from 'react';
import * as FontAwesomeIcon from 'react-fontawesome';
const data = {
  otherTitles:[
        {
            titleHeading:"X",
            titles:["A","B","C","D"]
        },
        {
            titleHeading:"Y Z",
            titles:["E","F","G","H"]
        }        
    ]
}

export class OtherTitlesCollection extends React.Component{

  render() {
    const titlesCollection = data.otherTitles.map((othertitle)=>{
        let dataId = othertitle.titleHeading.replace(' ','');
        return(
            <div key={dataId}>
                <div>
                    <FontAwesomeIcon name='plus-circle' data-toggle="collapse"
                    data-target={"#"+dataId} role="button" aria-expanded="false" aria-controls={dataId}/>
                    <label>{othertitle.titleHeading}</label>
                </div>
                <div  className="collapse" id ={dataId}>
                    {
                        othertitle.titles.map((title)=>{
                            return(<div key={title} style={{margin: "1px auto 1px 10px"}}>{title}</div>);
                        })
                    }
                </div>
            </div>
        )
    });
    return (
        {titlesCollection}
    );
  }
};

最佳答案

出现问题是因为你尝试渲染

return (
    {titlesCollection}
);

现在由于您没有将 titlesCollection 包装在 div、span 或 Fragment 中,因此假定它是一个对象,例如

return (
     {titlesCollection: titlesCollection}
);

因此你会得到一个错误,现在 titlesCollection 将是一个数组,你可以像使用 React.Fragment 一样

return (
     <React.Fragment>
         {titlesCollection}
     </ React.Fragment>
);

或者您可以在 titlesCollection 周围添加一个 div,例如

return (
     <div>{titlesCollection}</div>
);

或者简单地返回 titlesCollection 就像

return titlesCollection;

关于javascript - 尝试在 React JS 中渲染对象数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49357056/

相关文章:

reactjs - 如何设置 react typescript useState 获取类型和使用 map 方法

javascript - 切换模式时 janrain 小部件丢失

javascript - 使用 import 从 ES6 中的 cwd() 读取

javascript - 如何在 Recorder.js 之外的浏览器中录制音频文件

javascript - 如何在公共(public)文件reactjs中包含文件?

javascript - 从 react 中的输入字段获取值

javascript - react js : import component to route

c# - 稳步减慢从 javascript 到 WCF 服务的 ajax 调用

javascript - 表单输入状态颜色不变

reactjs - Electron/React 应用程序中的热重载