問題タブ [normalizr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
redux - Redux + Normalizr : Redux 状態での正規化されたエンティティの追加と削除
ネストされたエンティティが多数ある API 応答があります。私はnormalizrを使用して、redux の状態をできるだけフラットに保ちます。
たとえば。API の応答は次のようになります。
この応答はnormalizr
、以下に示すスキーマを使用して正規化されます。
以下はそのときの様子です。
redux の状態は次のようになります。
を追加するアクションをディスパッチするとtag
、tag
オブジェクトが追加されますが、配列state.tags
は更新されません。state.opening.tags
タグを削除するときも同じ動作です。
とを 3 つの異なるレデューサーで保持opening
します。tags
docs
これは状態の矛盾です。状態の一貫性を保つには、次の方法が考えられます。
- タグを更新するアクションをディスパッチし、
tags
リデューサーとopening
リデューサーの両方でリッスンし、続いて両方の場所でタグを更新します。 - タグで開口部を更新するパッチ リクエストは、開口部の応答を返します。応答を正規化し、適切な一貫性を持ってタグやオープニングなどを設定するアクションを再度ディスパッチできます。
これを行う正しい方法は何ですか。エンティティは、関連するエンティティへの変更を監視して、変更自体を行うべきではありません。または、そのようなアクションに従うことができる他のパターンがあります。