有OrderedMap immutablejs对象:
{
"country": {
"value": "US",
"locked": false,
"history": null
},
"city": {
"value": "NY",
"locked": false,
"history": [
{
"value": "LA",
"date": 1447366980
},
{
"value": "WA",
"date": 1447331640
}
]
},
"event_title": {
"value": "some text",
"locked": false,
"history": null
},
"place": {
"value":"some text",
"locked": false,
"history":null
}
}
需要将其映射到React组件:
const fields = res.map(item => <Field name={%KEY_NEED_HERE%} rest={item} handleChange={this.handleChange} />)
如何获取iterable的密钥并将其发送到Field的名称?有些喜欢
<Field name={city} rest={item} />
Plz,帮助
答案 0 :(得分:0)
传递给映射器的第二个参数是键,所以你可以这样做:
const fields = res.map((item, key) => <Field name={key} rest={item} handleChange={this.handleChange} />)
答案 1 :(得分:0)
如果您希望最终结果为name='NY'
,那么您需要将其传递给name={item.getIn(['city', 'value']}
。
getIn
是一种可用于所有Immutable对象的方法。查看docs了解更多