Reduxストアの現在の状態に基づいてアクションをディスパッチするための推奨事項を解決しようとしていますが、うまくいきませんでした。
ログイン時に、現在のユーザーの ID が に保存される設定がありますauth.currentUser
。
に保存されているユーザーの詳細も個別に持っていますusers[id]
。
loadUser(id)
まず、ユーザーの詳細が既に利用可能な場合、アクションの作成者が API 呼び出しを行わないようにしたいと思います。次に、loadCurrentUser()
保存されている現在のユーザー ID に基づいてユーザーを取得するための呼び出しを行うアクション クリエーターが必要です。
これを行う最善の方法は何ですか?redux thunk を使用して比較的簡単に実行できることはわかっていますが、それが最善ですか、それともより良い方法がありますか? これまでのところ、私はそれを使用することを避けてきました。代わりに、非同期アクションに redux promise ミドルウェアを使用しています。
編集:やりたいことを明確にする。
コンポーネントがロードされるときに、現在のユーザーの詳細がロードされていることを確認する必要があります。loadCurrentUser()
発送されるように配線することでこれを行います。
まず、このアクションでは、ストアの別の場所に保存されている ID に基づいてユーザーを読み込む必要があります。次に、その ID を持つこのユーザーがまだストアにいない場合にのみ、これを行う必要があります。