Redux Reducer中关于default的问题

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呢?

阅读 2.1k
1 个回答

每个reducer都会执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题