在React中迭代不可变映射的键

jos*_*y89 11 dictionary immutability reactjs

通过Immutable.js Map对象处理迭代的好方法是什么?这有效:

{stocks.map((stock,key)=>{
    return ( <h3>{key}</h3> )
})}
Run Code Online (Sandbox Code Playgroud)

但在控制台中发出警告"warning.js:45警告:使用地图作为子节点尚未完全支持.这是一个可能被删除的实验性功能.将其转换为键控的ReactElements序列/迭代."

这已经在前面讨论了,这个链接提出了一些策略https://github.com/facebook/immutable-js/issues/667但它们对我来说似乎很笨拙.喜欢:

posts.entrySeq().map(o => 
     <Post value={o[1]} key={o[0]} />
)
Run Code Online (Sandbox Code Playgroud)

工作但很笨拙的感觉.有更自然的方式吗?

dev*_*ell 12

由于您提出了这个问题,因此您在引用的github问题上发布了更好的解决方案.@vinnymac建议:

posts.entrySeq().map( ([key, value]) => 
  <Post key={key} value={value} />
)
Run Code Online (Sandbox Code Playgroud)

这很有效,因为entrySeq()返回一个键/值元组序列,然后您可以在.map()回调的参数中进行解构.

编辑我现在看到你只是要求钥匙.在这种情况下,keySeq()如果您想使用ImmutableJS map()keys()想要使用ES6,请使用map()