ホームページ > ウェブフロントエンド > jsチュートリアル > React.js で配列の子に一意のキーを適切に割り当てる方法は?

React.js で配列の子に一意のキーを適切に割り当てる方法は?

Patricia Arquette
リリース: 2024-12-28 00:51:18
オリジナル
996 人が閲覧しました

How to Properly Assign Unique Keys to Array Children in React.js?

React.js の配列の子の一意のキーを理解する

React で動的テーブルを操作する場合、各子要素に一意のキーを割り当てるのは次のとおりです。効率的なレンダリングに不可欠です。ただし、「配列内の各子には一意の 'key' プロパティが必要です」のようなエラーが発生すると、イライラすることがあります。

次のコード スニペットを考えてみましょう。

render: function() {
  return (
    <table key="table">
      <thead key="thead">
        <TableHeader columns={columnNames} />
      </thead>
      <tbody key="tbody">
        {rows}
      </tbody>
    </table>
  );
}
ログイン後にコピー

TableComponent には、キーが割り当てられている場合、rows 変数内の各行要素には一意のキーがありません。これにより、前述のエラーが発生します。

この問題を解決するには、すべての配列の子に一意のキーがあることを確認してください。この場合、各 TableRowItem コンポーネントには独自のキーが必要です:

<TableRowItem key={item.id} data={item} columns={columnNames} />
ログイン後にコピー

さらに、各配列の子内の子にも一意のキーが必要です。提供された TableRowItem コンポーネント内:

var TableRowItem = React.createClass({
  render: function() {
    var td = function() {
      return this.props.columns.map(function(c) {
        return <td key={this.props.data[c]}>{this.props.data[c]}</td>;
      }, this);
    }.bind(this);

    return (
      <tr>{td(this.props.item)}</tr>
    )
  }
});
ログイン後にコピー

テーブルの更新時に React が最小限の DOM 変更を行えるように、各 td 要素にキーを割り当てる必要があります。配列の子内の各子にキーを提供しないと、更新された要素だけでなく行全体を再レンダリングする必要が生じる可能性があります。

これらのガイドラインに従うことで、動的要素の効率的なレンダリングを保証できます。 React のテーブルでは、配列の子とその要素に一意のキーが割り当てられています。さらに詳しい洞察とベスト プラクティスについては、キーに関する React ドキュメントを参照してください。

以上がReact.js で配列の子に一意のキーを適切に割り当てる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート