最近、あるアプリでそれを行いましたが、これが悪い習慣と見なされるのか、それとも問題ないのかを知りたいです。2 つのアクションをリッスンするレデューサーがあるとします。
switch (action.type) {
case 'PRE_FETCH_ACTION':
return Object.assign({}, state, {value: action.value, isAllowed: true})
case 'FETCHED_SUCCESS':
if (!state.isAllowed) {
throw Error('You did not dispatch PRE_FETCH_ACTION before fetching!');
}
return Object.assign({}, state, {data: action.data, isAllowed: false})
}
したがって、フローは次のとおりです。
- 発送します
PRE_FETCH_ACTION
- 外部 API へのフェッチ呼び出しを行います
- サービスの応答が返ってきたらディスパッチする
FETCHED_SUCCESS
誰かがPRE_FETCH_ACTION
最初のデータをディスパッチせずにデータをフェッチしようとすると、コードはエラーをスローします。
わかりました、これでうまくいきます。私の懸念は、私が言ったように、これが悪いパターンと見なされるかどうかです。なぜそう思うのですか?状態のisAllowed
一部はレデューサーの内部にあるため、コンポーネントのレンダリング メソッドには影響しません。