他のレデューサーでアクションをディスパッチする方法。 たとえば、私はスイッチケースADD_LOG
とREMOVE_LOG
で減速器LogsReducer
を作成します。コード:他のレデューサーでアクションをディスパッチするReactJS/Reduxコール
const addLog = (text) => ({type: 'ADD_LOG', text});
const removeLog = (id) => ({type: 'REMOVE_LOG', id});
const logsReducer = (state = {}, action) => {
switch (action.type) {
case 'ADD_LOG':
// todo
case 'REMOVE_LOG':
// todo
default:
return state;
}
};
と私はcombineReducers
にlogsReducer
を追加します。 アクションをディスパッチするには、mapDispatchToProps
の中でこれを呼び出します。
dispatch(addLog('sample log'));
dispatch(removeLog(2);
ここで質問します。ログ減速装置の外部からのメッセージのディスパッチを許可する方法。例えば、他の減速機でのフェッチ応答から。 contactReducer
?
すべてのアクションはすべてのレデューサーに送信されます。したがって、 'action.type'が' ADD_LOG'の場合、 'contactReducer'も' switch 'できます。 –
あなた自身が尋ねなければならない唯一の質問は、あなたの行動が特定の順序で実行されなければならない場合です。そうでなければ@DavinTryon彼の答えは必要なものです。いくつかの種類のミドルウェア – Icepickle
しかし、contactReducerは、異なるレデューサーです。そして、このケースは 'switch'にはありません。あなたは知っている、私はユーザーのイベントを記録し、それを状態にキー 'ログ'(logsReducer) –