ここにRedux saga noobがあります。redux-sagaに2つのアクションが少なくとも1回何らかの順序で発生するのを待つにはどうしたらよいですか?
私のAPIサーバーからreduxストアの初期状態を読み込むサガを作成する必要があります。
これには、2つの非同期サガを使用します(getCurrentUser
およびgetGroups
)。
私は並行してこれらのAJAX要求を発行し、それが反応するコンポーネントをレンダリングする時が来たUIを伝えるpageReady
アクションを発行する前にGET_CURRENT_USER_SUCCESS
とGET_GROUPS_SUCCESS
アクションを待つ必要があります。
私はハック解決策を考え出した:このコードの問題は、何らかの理由GET_GROUPS_SUCCESS
のために二回発行されている場合、pageReady
アクションは早期に呼び出されるということです
function * loadInitialState() {
yield fork(getCurrentUser)
yield fork(getGroups)
while (true) {
yield take([
actions.GET_GROUPS_SUCCESS,
actions.GET_CURRENT_USER_SUCCESS
])
yield take([
actions.GET_GROUPS_SUCCESS,
actions.GET_CURRENT_USER_SUCCESS
])
yield put(actions.pageReady())
}
}
。
はどのようにして、任意の順序に少なくとも一度を発生するGET_GROUPS_SUCCESS
とGET_CURRENT_USER_SUCCESS
を待つためにReduxの武勇伝を得ることができますか?