ホームページ > ウェブフロントエンド > jsチュートリアル > ReactJS で配列内のオブジェクトを効率的に更新するにはどうすればよいですか?

ReactJS で配列内のオブジェクトを効率的に更新するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-03 16:42:11
オリジナル
626 人が閲覧しました

How Can I Efficiently Update Objects Within an Array in ReactJS?

ReactJS での配列内のオブジェクトの更新: 総合ガイド

ReactJS では、状態の一部として配列を扱う場合、それらの配列内のオブジェクトの更新は、挑戦的な課題。この記事では、この問題に対する最適な解決策を提供します。

チュートリアルで示された例を検討してください:

var CommentBox = React.createClass({
  getInitialState: function() {
    return {data: [
      { id: 1, author: "john", text: "foo" },
      { id: 2, author: "bob", text: "bar" }
    ]};
  },
  handleCommentEdit: function(id, text) {
    var existingComment = this.state.data.filter({ function(c) { c.id == id; }).first();
    var updatedComments = ??; // not sure how to do this  

    this.setState({data: updatedComments});
  }
}
ログイン後にコピー

「data」配列内のオブジェクトを更新するには、 updatedComments 変数の 'map' メソッド:

handleCommentEdit: function(id, text) {
    this.setState({
      data: this.state.data.map(el => (el.id === id ? Object.assign({}, el, { text }) : el))
    });
}
ログイン後にコピー

このアプローチでは、'Object.assign' を使用して既存のオブジェクトをマージします。プロパティが更新されるため、不変性が保証されます。あるいは、ES2018 と互換性のある「spread」演算子を選択することもできます。

this.setState({
  data: this.state.data.map(el => (el.id === id ? {...el, text} : el))
});
ログイン後にコピー

これらの手法に従うことで、ReactJS アプリケーションの配列内のオブジェクトを簡単に更新できます。

以上がReactJS で配列内のオブジェクトを効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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