警告:任何对键控对象的使用都应该在作为子对象传递之前包装在React.addons.createFragment(obj



我已经将React从0.12.2升级到0.13.x(也是React路由器),不幸的是我收到了这个警告。

警告:任何对键控对象的使用都应该在作为子对象传递之前包装在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

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

在呈现基于动态数组的组件列表时,应仅使用key属性。一旦您将属性从key重命名为其他属性

,错误就会消失

最新更新