[解決済み] reduxで特定の配列アイテムの中の単一の値を更新する方法
2022-05-08 06:10:05
質問
私は状態の再レンダリングがUIの問題を引き起こすという問題を抱えており、ページ上での再レンダリングの量を減らすために、私のreducerの内部で特定の値のみを更新することを提案されました。
これは私の状態の例です。
{
name: "some name",
subtitle: "some subtitle",
contents: [
{title: "some title", text: "some text"},
{title: "some other title", text: "some other text"}
]
}
で、現在このように更新しています。
case 'SOME_ACTION':
return { ...state, contents: action.payload }
ここで
action.payload
は新しい値を含む配列全体です。しかし、実際にはコンテンツ配列の2番目の項目のテキストを更新する必要があり、次のようなものは動作しません。
case 'SOME_ACTION':
return { ...state, contents[1].text: action.payload }
ここで
action.payload
は、現在、更新に必要なテキストです。
解決方法は?
を使用することができます。 React Immutabilityヘルパー
import update from 'react-addons-update';
// ...
case 'SOME_ACTION':
return update(state, {
contents: {
1: {
text: {$set: action.payload}
}
}
});
とはいえ、もっとこういったことをやっているのではと思うのですが?
case 'SOME_ACTION':
return update(state, {
contents: {
[action.id]: {
text: {$set: action.payload}
}
}
});
関連
-
Vue+ElementUIによる大規模なフォームの処理例
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] 配列を値でコピーする
-
[解決済み] 配列の最後の項目を取得する
-
[解決済み] setStateを呼び出さずにReactコンポーネントを強制的に再レンダリングすることは可能ですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
vue ディレクティブ v-html と v-text
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
[解決済み] Reactでネストした状態のプロパティを更新する方法