常见错误

1. React循环生成相同元素时,建议使用key,例如循环生成li

这并不会引起编译错误,但会引起一个warning

Warning: Each child in an array or iterator should have a unique "key" prop.

我原先的代码是这样的

this.props.fields.map(function(value){
    return (
        <li>
            ...
        </li>
    )
});

生成的li长这样

然后我往li里放了一个key

this.props.fields.map(function(value,index){
    return (
        <li key="{index+3}">
            ...
        </li>
    )
});

然后生成的ul是这样的

我是根据JSON然后生成多个li元素,但是React建议我为每个li添加一个key元素

React为什么建议我们这样做,是为了让li更快的排序和摧毁.(笔者有点奇怪,react默认会生成reactid啊,为啥还要让我们自定义key)

假如往ul里放li,应该在ul里定义的li放key.

例如当li又是一个React组件,在li组件返回li中定义key是不好的,应该在ul中明显调用这个组件时就定义key

参考资料

http://facebook.github.io/react/docs/multiple-components.html#dynamic-children