我已将React从0.12.2升级到0.13.x(也是react-router),不幸的是我收到了此警告。
警告:任何对键控对象的使用都应该在作为子进行传递之前包装在React.addons.createFragment(object)中。
在我看来,问题是由<RouteHandler>
中的关键属性引起的。
在React 0.12.x中,我使用getRoutes()
函数来设置密钥。
render: function () {
var name = this.getRoutes().reverse()[0].name;
return (
<div className="app">
<Router.RouteHandler
key={name}
places={this.state.places}
mode={this.state.mode}
...
然后React知道使用哪个组件。它有点像
http://theimagehost.net/upload/798bf2195d31a2926250e6fbca806254.gif
现在
http://theimagehost.net/upload/9990cea32e13d443806b829ccbdc964d.gif
我不知道如何判断应该使用哪个组件。
答案 0 :(得分:0)
在渲染基于动态数组的组件列表时,您应该只使用key
属性。将属性从key
重命名为其他内容