Redux官方教程和大部分代码中,Reducer中关于default都是返回state的
default:
return state
但是在Redux官方案例中,也有的并不是返回state。比如shopping cart中
//reducers/products.js
const byId = (state = {}, action) => {
switch (action.type) {
case RECEIVE_PRODUCTS: //省略
default:
const { productId } = action
if (productId) {
return {
...state,
[productId]: products(state[productId], action)
}
}
return state
}
}
//reducers/cart.js
const cart = (state = initialState, action) => {
switch (action.type) {
case CHECKOUT_REQUEST: return initialState
case CHECKOUT_FAILURE: return action.cart
default:
return {
addedIds: addedIds(state.addedIds, action),
quantityById: quantityById(state.quantityById, action)
}
}
}
如果要执行default里的代码,应该是发出的action.type在其它case里找不到。那如果发出了一个这样的action,那是怎么判断 是该执行products.js里的default,还是执行cart.js里的default呢?
每个reducer都会执行