渲染json数据时出错[Reactjs]

时间:2016-11-24 12:16:06

标签: javascript reactjs

数据采用以下形式:

this.props.tagsview



_getTags() {
    console.log(this.props.tagsview);
    return this.props.tagsview.map(tags => {
        var newItem = tags.map(p => <span className="tag" key={p.tag_id}>{p.name}</span>);
        return ({newItem);
    });
}
&#13;
&#13;
&#13;

所以当我正在运行时,我得到了:

  

error react.js:18893 Uncaught Error:对象作为React子对象无效(找到:具有键{newItem}的对象)。如果你想渲染一个子集合,请使用数组,或者使用React附加组件中的createFragment(object)包装对象。(...)

我缺少什么?
还有另外一种方法吗?

1 个答案:

答案 0 :(得分:0)

这里有两个问题..一个是你要返回一个嵌套列表 [[]]我想你可能只想返回一个列表[]。 你也从你的外部地图函数返回{newItem}。 这不是React可以渲染的东西。 React需要反应元素或反应元素列表。

你的意思是:

return this.props.tagsview.map(tags => {
      return tags.map(p => <span className="tag" key={p.tag_id}>{p.name}</span>);
    });

或可能

this.props.tagsview
  .reduce((tags, view) => [...tags, ...view.map(t =><span className="tag" key={p.tag_id}>{p.name}</span>)], [])