render() {
return (<div> this.list.map(obj => <input value={obj.name} type="checkbox" />)</div>)
}
为什么上述代码不起作用?有意外的令牌。
您忘了在{}
中包装map
部分,以这样的写入:
render() {
return (
<div>
{this.list.map(obj => <input key={obj.name} value={obj.name} type="checkbox" />)}
</div>
)
}
将唯一的key
分配给每个输入元素。
如果列表是state
变量,则需要编写this.state.list
,不确定是否使用相同的代码。
您需要将map
包装到卷曲括号中。代码应如下:
class HelloWidget extends React.Component {
constructor(props) {
super(props);
this.list = [{
"id": "exhibitions",
"name": "Exhibitions"
}, {
"id": "festivals_n_concerts",
"name": "Festivals & Concerts"
}, {
"id": "grand_opening",
"name": "Grand Opening"
}]
}
render() {
return (
<div>
{this.list.map(obj => <input key={obj.name} value={obj.name} type="checkbox" />)}
</div>
)
}
}
React.render( <HelloWidget /> , document.getElementById('container'));
这将起作用。这是小提琴。