数据采用以下形式:
_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;
所以当我正在运行时,我得到了:
error react.js:18893 Uncaught Error:对象作为React子对象无效(找到:具有键{newItem}的对象)。如果你想渲染一个子集合,请使用数组,或者使用React附加组件中的createFragment(object)包装对象。(...)
我缺少什么?
还有另外一种方法吗?
答案 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>)], [])