在Redux中管理状态会产生哪些额外限制?

时间:2018-04-04 10:00:47

标签: reactjs redux

我读到在Redux中存储状态(而不是在组件内),对状态如何变异施加了额外的限制,但是不清楚它们是什么。

据我所知,即使管理组件中的状态,状态总是应该不可更新地更新。例如,如果我们当前的状态是


SetEnvIf Request_URI /myDir/ nokeepalive

如果我们想要将计数增加1并将项目添加到列表中,那么执行此操作的正确方法(当状态存储在组件中时)是:


Header set Connection "close"

如果我们要将状态存储在Redux中并通过将操作发送到reducer来修改它,AFAIK我们应该以类似的不可变方式修改它。

在更新状态方面,将它存储在Redux中会产生额外的限制吗?

1 个答案:

答案 0 :(得分:1)

不,它在减速机中的工作方式(几乎)相同。您将根据之前的状态返回一个新对象,这正是redux要求您做的事情。

但请注意,与React的setState不同,您需要在reducer中返回整个州。通常使用Object.assign...运算符来完成此操作:return { ...state, changedThing: 'value' };。而在React中,setState({ changedThing: 'value' })就足够了。

那我认为这是你的额外限制。