非同期アクション クリエーターでは、サーバーからデータをフェッチします。私のユースケースでは、データが適切にフォーマットされていないため、UI で使用するためにデータを変換する必要があります。
質問 : 私は
変換されたデータで成功アクションをディスパッチする前に、データが到着した直後にデータを変換しますか?
fetch("some/url") .then(res => dispatch(successActionCreator(transform(res)))
生データを使用して成功アクションをディスパッチして保存し、内部で変換します
mapStateToProps
か?生データを使用して成功アクションをディスパッチし、レデューサーで変換しますか?
1.では、必要なときにデータが変換され、API データ形式と Redux ストアが切り離されているように思えます。ただし、変換ロジックはデータ フェッチ アクションにあります。
2.では、非同期アクション クリエーターは単純なままで、ロジックはまったくなく、マッピングは UI レイヤーで行われます。mapStateToProps
しかし、これは、レンダーごとに呼び出されるため、reselect などで最適化する必要があることを意味します。
3.では、非同期アクション クリエーターは単純なままで、ロジックはまったくありませんが、アクションは API データ形式に結合されています。
私は 1 に行きます(とにかく変換の単体テストを行います) が、完全に満足しているわけではありません。なにか提案を ?ありがとう !
-編集:質問は独断的な回答の対象であるため、ここで自分自身に答えています。コメントに記載されているすべての理由と回答の1つから、1.を使用します。