未捕获的TypeError:action.products.reduce不是函数

时间:2016-09-30 19:52:20

标签: reactjs webpack react-redux

所以我前几天从git中采取了React-Redux回购示例。我一直在加入它作为练习来学习。我正在尝试重写服务器端代码,以便我能更好地理解它,并最终将Mongo数据库引入到折叠中。我有服务器端代码,运行和工作,但一些现有的代码似乎不再工作。我无法弄清楚原因。我得到的错误是

未捕获的TypeError:action.products.reduce不是函数

以下是代码。我不确定它是否不喜欢扩展运算符或一般语法,我必须确保webpack在bundle上正确处理。在此先感谢您的帮助!

function byId(state = {}, action) {
  switch (action.type) {
    case RECEIVE_PRODUCTS:
      return {
        ...state,
        ...action.products.reduce((obj, product) => {
          obj[product.id] = product
          return obj
        }, {})
      }
    default:
      const { productId } = action
      if (productId) {
        return {
          ...state,
          [productId]: products(state[productId], action)
        }
      }
      return state
  }
}

以下是在reducer之前根据请求调用的操作。

function receiveProducts(products) {
  return {
    type: types.RECEIVE_PRODUCTS,
    products: products
  }
}

export function getAllProducts() {
  return dispatch => {
    shop.getProducts(products => {
      dispatch(receiveProducts(products))
    })
  }
}

0 个答案:

没有答案