1. ホーム
  2. javascript

[解決済み] なぜReduxのステート関数はreducersと呼ばれるのか?

2023-05-13 10:22:29

質問

これは はReduxの公式ドキュメントの一部です。 :

<ブロッククオート

に渡すような関数なので、reducerと呼ばれています。 に渡す関数だからです。 Array.prototype.reduce(reducer, ?initialValue)

それは私にはあまり意味がありません。なぜそれらが実際にreducersと呼ばれるのか、誰か私に説明してくれませんか?それらがデフォルト値を返すという事実(またはそれらはデフォルトの引数値を持っている)は、IMHOがそれらをreducersにすることはありません。

どのように解決するのですか?

デフォルト値を返す(あるいはデフォルトの引数値を持つ)という事実は、リデューサにはなりません。 引数値を持っている)という事実は、IMHOではそれらをリデューサにすることはできません。

リデューサは ただ はデフォルト値を返します。 それらは常に(以前と現在のすべてのアクションに基づいた)状態の蓄積を返します。

したがって、それらは レデューサ として動作します。 redux reducer が呼ばれるたびに、状態はアクションと一緒に渡される (state, action) . この状態は、次に を減らした (または蓄積)され、次の状態が返されます。 これは、古典的な fold または reduce という関数があります。

で@aziumがまとめたように state -> action -> state .