如何在redux减速器中的对象的嵌套数组中添加项目

use*_*410 2 javascript reactjs redux

这是我的示例初始状态:

let initialState = {
    data: {
        name: 'john',
          books: [
              {
                  name: 'a',
                  price: 220
              }
          ]
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将新的图书项目添加到图书中?

我已经尝试过了

return {
        ...state,
        data :{
          ...state.data,
          books:{
              ...state.data.books,
              name : state.data.books.concat(action.payload.item.name),
              price : state.data.books.concat(action.payload.item.price)
          }
      }
      };
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

重要提示:我不想删除书中已有的项目,我想添加带有操作负载的新项目

Dom*_*tis 6

您错过了一些大括号,尤其books是数组,并且您正在插入新对象

return {
        ...state,
        data: {
          ...state.data,
          books: [
              ...state.data.books,
              {
                  name: action.payload.item.name,
                  price: action.payload.item.price
              }
          ]
      }
};
Run Code Online (Sandbox Code Playgroud)