如何解决React中的'Unhandled Rejection(TypeError):state.categories.concat不是一个函数'?

时间:2019-07-29 13:18:56

标签: reactjs redux

我正在使用redux进行状态管理,并且尝试添加新的数据条目时出现此错误。

以下是我的减速器的代码

import { ADD_CATEGORY_SUCCESS } from "../actions/type";
const initialState = {
  categories: [],
  status: null,
  statusType: null
};

export default function(state = initialState, action) {
  switch (action.type) {
    case ADD_CATEGORY_SUCCESS:
      console.log(action.payload);
      console.log(state.categories);
      return {
        categories: state.categories.concat(action.payload),
        status: 200,
        statusType: "addCategory"
      };
    default:
      return state;
  }
}

第一个控制台信息返回一个对象,第二个控制台返回对象数组。数据被添加到数据库中。所以我不明白问题出在哪里。

2 个答案:

答案 0 :(得分:0)

嗯,你为什么不尝试这个,我只改变了concat来扩展操作

import 'slick-carousel/slick/slick.css'
import 'slick-carousel/slick/slick-theme.css'

答案 1 :(得分:0)

如果state.categories是一个数组:

Array.concat()接受一个数组,而action.payload是一个对象。

您可以尝试以下解决方法之一:

return {
  // Concat
  categories: state.categories.concat([action.payload]),

  // Spead operator
  caregories: [...state.categoris, action.payload],
  ...
}