問題タブ [redux-toolkit]

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.

0 投票する
1 に答える
1045 参照

reactjs - createReducer の使用時にスライス レデューサー間でデータを共有する

ReactJS アプリがTypeScriptあり、レデューサーを構築するためにredux使用しています。redux-toolkitアプリが大きくなったので、レデューサーのリファクタリングを開始したいと考えています。

私の還元状態は次のようになります。

customersとのordersスライスは独立しているので、2 つの個別のレデューサーを簡単に作成して、combineReducers後で組み合わせることができます。

ordersここで、減速機をさらに分解したいと思います。

  • state1そしてstate2完全に独立しています。
  • state3からのデータに依存しますstate1
  • state4state1とからのデータに依存しますstate2

createReducerfrom redux-toolkit(またはツールキットの他の機能)を引き続き使用して、スライス内のネストされordersた各スライスのレデューサーを作成する方法はありますか?

のレデューサーを書き直し始めたordersので、これまでのところ次のとおりです。

注: 還元状態の構造を制御することはできません。私は使用に完全に縛られているわけではありませんredux-toolkitが、チームがそれを使用しないようにするためには正当な理由が必要です。

0 投票する
2 に答える
3858 参照

redux - createAsyncThunk から他のアクションを呼び出す

通常、サンクでは、他のアクションを呼び出すことになります。

redux ツールキットでは、これcreateAsyncThunkはそれほど簡単ではありません。実際、次の結果のアクションから状態を変更できますextraReducers

しかし、レシピを開始する非同期の方法も必要です。これには、スライスにレデューサーが必要です。

同じコードを 2 つの場所に記述することを避けるために、サンク ハンドラーから単純なレデューサー関数を呼び出せるようにしたいと考えています。startRecipe(state)ケースから簡単に and startRecipe(アヒルのエクスポート用に分解されていたので、正しい関数を参照していたと確信しています)を試しましextraReducersたが、うまくいきません。

_startRecipe私の現在の解決策は、スライスの外側で定義し、両方の場合でその関数を参照することです

slice.reducersでシンプルなアクションを定義し、サンク ハンドラから参照できる「より良い」方法はありますextraReducersか?