React - Redux,为什么在将新项目添加到状态数组后影响所有状态数组元素



>我有一个redux状态数组,其中包含一些个人信息。当我单击按钮时,此数组由新项目填充。示例数组如下

第一次点击

单击否 - 名称 - 年龄

  1     - DAVID - 48
  1     - JOSH  - 21
  1     - MARIA - 55

第二次单击后,我想查看我的数组,例如

  1     - DAVID - 48
  1     - JOSH  - 21
  1     - MARIA - 55
  2     - JOHN - 70
  2     - MICHAEL - 18
  2     - SYLVESTER - 33

第三,第四....等。所以第一个列是按钮点击数。

但问题是所有旧数据都单击数字随新数字而变化,例如(第二次单击后(

  2     - DAVID - 48
  2     - JOSH  - 21
  2     - MARIA - 55
  2     - JOHN - 70
  2     - MICHAEL - 18
  2     - SYLVESTER - 33

从不将旧数据更改为数组,我只是放置新数据,我不明白为什么旧的 CLICIK 数字会随着新的点击次数而变化

我尝试过的 Redux 代码

case "ADDNEWDATA": {
     let arr = [...state.mydata];
     arr = [...arr, action.payload.newdata]
     return Object.assign({}, state, { mydata: arr })
}

 case "ADDNEWDATA": {
     let arr = [...state.mydata];
     action.payload.newdata.map((item) => {
            arr = arr.push(item)
     })
     return Object.assign({}, state, { mydata: arr })
}

 case "ADDNEWDATA": {
     return Object.assign({}, state, { mydata: [...state.mydata, action.payload.newdata] })
}

我认为我没有代码问题,但数组似乎不是那么:(

我想帮忙,但我无法从上面理解你在做什么。所以你在第一次点击后声明是 {mydata:[{},{}, {}]} ?你的有效载荷将是一个新的 [{}, {}, {}] 数组,所以如果你只返回 [].concat(state.mydata, payload( ?

最新更新