2016-11-25 71 views
0

有OrderedMap immutablejs對象: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 
     } 
} 

需要映射它反應的組分:

const fields = res.map(item => <Field name={%KEY_NEED_HERE%} rest={item} handleChange={this.handleChange} />) 

如何獲得的迭代密鑰並將其發送到Field的名字? Somethng像

<Field name={city} rest={item} /> 

PLZ,幫助

回答

0

傳遞給映射器的第二個參數是關鍵,所以你可以這樣做:

const fields = res.map((item, key) => <Field name={key} rest={item} handleChange={this.handleChange} />) 
0

如果你想最終的結果是name='NY'那麼你需要通過它name={item.getIn(['city', 'value']}

getIn是一種可用於所有不可變對象的方法。查看docs瞭解更多