无法理解为什么我的数组在我的 Reducer 中发生变异

Can't understand why the my array is mutating in my Reducer

我知道在 React 中你希望始终保持状态不可变。

也许我的登录状态和不变性存在一些缺陷。如果我错了请纠正我,但是状态对象的核心是在 reducer 中管理的,对吗?意思是,如果我想让我的 state of users (例如)成为一个列表......我想把它塑造成一个数组。

因此,我设置了 inititalState = []。这就是我认为我被难住了的地方。不知道我是不是理解错了,还是没有考虑。

之前我在做,

case GET_USERS:
  return [...state, 
    Object.assign({}, action.payload)
  ];

但我被建议将其更改为 return [...state, ...action.payload]; 考虑到它不是我正在改变的对象或键。现在我假设,return [...state, ...action.payload]; 正在用 action.payload 替换 state,但根本不是这样

每次我尝试过滤用户...它只是 MUTATES 将用户对象推送 this.props.users我对如何做感到困惑,因为我正在尽力遵循 Redux 文档。

发生这种情况是因为 ...state 将有您的 users 列表。在下一次调用期间,您只需将新用户追加到 state 中。相反,您应该返回 payload.

尝试以下方法。

case GET_USERS:
  return [...action.payload];