2017-04-02 9 views
0

私はかなり標準的な配列を持っている:IDなしのReactで配列をマップする方法は?

["value","value","value"] 

私はそれを反復処理したい場合は、各リスト項目は、一意のキーを必要とします。しかし、私はこの場合どのようにこれを行うでしょうか?

JSONにはIDが付いていることがよくありますが、この場合IDはありません。また、値も一意ではないため、キーとして使用することはできません。

{someArray.map(object => { 
       return (<span key=???> {object} </span>); })} 

答えて

0

各リスト項目は、それが本当にない

一意のキーを必要とします。リアクションの警告はここでは非常に吹き飛びます。ユニークなキーは、より良いパフォーマンスが必要な場合にのみ必要です。また、コンポーネントの状態を維持するためのいくつかのことも考えています。 dom.div(null, ["text"])を実行すると警告が表示されますが、 dom.div(null, ...["text"])を実行すると、どちらの場合も同じ配列が渡されても警告は表示されません。後者の場合、Reactは単純にキーとしてインデックスを使用しますが、これは前者の場合も全く問題ありませんが、Reactは本当の理由がなければ警告します。

レンダリング関数がステートレスで、パフォーマンスが向上する必要がない場合は、配列内のインデックスのキーを与えて警告を消すか、スプレッド演算子を使用します。

0

あなたは、インデックス、マップの第2引数を使用することができます。

{someArray.map((object, i) => { 
       return (<span key={i}> {object} </span>); })} 

は限りコンポーネントの存続期間中に同じままsomeArrayとして、これは結構です。そうでない場合は、子要素のすべての小道具が変更されるため、アイテムを移動、挿入、または削除するときに必要以上に再レンダリングが発生します。 (ただし、この場合は気づかないでしょう)

関連する問題