発行されたActionをどうやって対応するReducerに渡しているのか
はじめて、質問を投稿させていただきます。
4月から新卒としてWeb系企業に勤めています。
幸運なことに新規案件に携わることができ、とても楽しくエンジニア生活をスタートさせることができました。
今現在はReactとReduxを使って開発を行っていますが、そこでどうしても理解できないことがありましたので、それをご質問させていただきたいです。
複数のActionと複数のReducerが存在する場合、発行されたActionはどうやって自分自身が処理対象となっているReducerを特定しているのでしょうか?
先輩からは下記のように複数の互いに依存しないActionがある場合には、それ毎にReducerを作成し、Stateを変更する必要がある。ということで教わりました。
複数のReducerが存在する場合は、combineReducersでrootReducerを作成しcreateStoreに対して、渡してあげる必要があることも教わりました。
// Action
export const actionA = status => ({
type: 'A_ACTION',
status
})
export const actionB = status => ({
type: 'B_ACTION',
status
})
// Reducer
export const actionAReducer = (state = false, action) => {
switch(action.type) {
case 'A_ACTION':
return action.status
default:
return state
}
}
export const actionBReducer = (state = false, action) => {
switch(action.type) {
case 'B_ACTION':
return action.status
default:
return state
}
}
Reducerが1つであるうちは、Actionが発行された場合に適応されるReducerも1つであるため、「発行されたActionを元にReducerが変更を加える。」という説明が理解できましたが、複数のReducerが登場すると、いまいちこの説明だけでは腑に落ちません。
自分なりにもいろいろと書籍を購入しましたが、自分の知りたいところの説明は「発行されたActionを元にReducerが変更を加える。」という類似した文言でまとめられてしまっており、どうやった発行されたActionが自分自身を処理対象とするReducerを特定しているのか(もしくはそれを指定するような記述があるのか)がわかりませんでした。
稚拙な文章で申し訳ございませんが、ヒントでもよいのでご教授いただければ幸いです。
よろしくお願いします。