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

Warning: Any use of a keyed object should be wrapped in React.addons.createFragment(object) before being passed as a child

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

Warning: Any use of a keyed object should be wrapped in React.addons.createFragment(object) before being passed as a child.

我认为问题是由我的 <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 重命名为其他名称

,错误应该消失