警告:任何对键控对象的使用都应该包装在React.addons.createFragment(object)中,然后作为子进行传递

时间:2015-11-01 02:09:51

标签: javascript reactjs react-router

我已将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

我不知道如何判断应该使用哪个组件。

1 个答案:

答案 0 :(得分:0)

在渲染基于动态数组的组件列表时,您应该只使用key属性。将属性从key重命名为其他内容

后,错误应该消失