動的リスト内のキーに反応:、これはFacebookのドキュメントからです
リストが再レンダリングされると反応させ、新しいバージョン の各要素を取得し、前のリストで一致するキーと1を探します。キーに が追加されると、コンポーネントが作成されます。キーが削除されると、 コンポーネントが破棄されます。キーはReactに各 コンポーネントの識別情報を伝えるので、rerenders間の状態を維持することができます。 コンポーネントのキーを変更すると、コンポーネントが完全に破棄され、 が新しい状態で再作成されます。
動的リストを作成するときには必ず適切なキーを割り当てることを強くお勧めします。適切なキーを手元にない場合は、 は、データを再構成して操作することを検討したい場合があります。
あなたが任意のキーを指定しない場合、警告を表示し、キーとして配列のインデックスを使用して にフォールバックしますリアクト - あなたが今までのアイテムを削除/リスト内の要素を並べ替えたり、追加 場合は正しい選択ではありませんどこでも のリストの一番下にあります。明示的にkey = {i}を渡すと、警告メッセージは表示されませんが、ほとんどの場合は推奨されません。
コンポーネントキーは、グローバルに一意である必要はなく、直接の兄弟に対して一意の相対番号 のみが必要です。
私はそれを得ていません。リストの中に次のようなキーを入力しないと:
return (
<li>
<a href="#" onClick={() => this.jumpTo(move)}>{desc}</a>
</li>
);
何が問題なのですか?リストに3つの要素があり、キーが[0,1,2]
で、1
を削除した場合、どうなりますか?
[こちら](http://blog.arkency.com/2014/10/react-dot-js-and-dynamic-children-why-the-keys-are-important/)の回答が見つかります。 –