7

子を持つ反応コンポーネントがあり、React.Children.toArrayこれらの子を呼び出す場合、配列内のオブジェクトに先頭に追加されたキーがあるのはなぜですか.$

var Child = React.createClass({
    render: function() {
        console.log(React.Children.toArray(this.props.children)[0].key);
        return <div>{this.props.children}</div>
    }
});

var Container = React.createClass({
    render: function() {   
        return <Child><div key={1}>1</div></Child>
    }
});

ReactDOM.render(<Container />,  document.getElementById('container'));

これ.$1はコンソールに記録されます。キーが から1に変更されたのはなぜ.$1ですか?

4

1 に答える 1

6

以下のメモを参照してくださいhttps://facebook.github.io/react/docs/top-level-api.html#react.children.toarray

注: React.Children.toArray() は、子のリストをフラット化するときに、ネストされた配列のセマンティクスを維持するためにキーを変更します。つまり、toArray は、返された配列内の各キーにプレフィックスを付けて、各要素のキーがそれを含む入力配列にスコープされるようにします。

于 2016-09-19T22:14:24.507 に答える