在React中渲染array.map()
我在尝试使用数据数组呈现<ul>
元素时遇到问题。在的下面的代码中,console.log
可以正常工作,但列表项未出现。
var Main = React.createClass({ getInitialState: function(){
return {
data: dataRecent
}
},
render: function(){
return (
<div>
<ul>
{
this.state.data.map(function(item, i){
console.log('test');
<li>Test</li>
})
}
</ul>
</div>
)
}
});
ReactDOM.render(<Main />, document.getElementById('app'));
我究竟做错了什么?请随时指出并非最佳做法的任何内容。
回答:
GoshaArinich是正确的,您应该返回您的<li>
元素。但是,在这种情况下,您应该在浏览器控制台中收到讨厌的红色警告
数组或迭代器中的每个子代都应具有唯一的“键”道具。
因此,您需要在列表中添加“键”:
this.state.data.map(function(item, i){ console.log('test');
return <li key={i}>Test</li>
})
或console.log()
使用es6
箭头功能放下并做一个漂亮的oneliner
:
this.state.data.map((item,i) => <li key={i}>Test</li>)
:
上面的答案正在解决当前的问题,但是正如Sergey在评论中提到的那样:如果要进行一些过滤和排序,则根据地图索引使用键是
。在这种情况下,请使用item.id
if(如果id
已存在),或仅为其生成唯一的ID。
以上是 在React中渲染array.map() 的全部内容, 来源链接: utcz.com/qa/420393.html