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

时间:2016-10-31 18:23:58

标签: reactjs redux immutability

我理解在React中你想要保持你的状态不变。

我的登录状态和不变性可能存在一些缺陷。如果我错了,请纠正我,但国家对象的核心是在减速器中管理的吗?这意味着,如果我希望我的state users(例如)成为一个列表...我想将它塑造成一个数组。

因此,我设置了inititalState = []。这是我相信我难倒的地方。我不知道我是否理解这一点,或者我不是在思考。

以前我在做,

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

但我被建议将其更改为return [...state, ...action.payload];,因为它不是我要改变的对象或键。我现在假设,return [...state, ...action.payload];正在替换stateaction.payload但这不是所有情况

每当我尝试过滤用户时......只需 MUTATES 用户对象推送到this.props.users,我就会对如何感到困惑,因为我正在尽力遵循Redux文档。

1 个答案:

答案 0 :(得分:0)

这是因为...state将包含您的users列表。在下一次通话期间,您只需将新用户添加到state即可。 Intead,您应该返回payload

请尝试以下操作。

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