我读到在Redux中存储状态(而不是在组件内),对状态如何变异施加了额外的限制,但是不清楚它们是什么。
据我所知,即使管理组件中的状态,状态总是应该不可更新地更新。例如,如果我们当前的状态是
SetEnvIf Request_URI /myDir/ nokeepalive
如果我们想要将计数增加1并将项目添加到列表中,那么执行此操作的正确方法(当状态存储在组件中时)是:
Header set Connection "close"
如果我们要将状态存储在Redux中并通过将操作发送到reducer来修改它,AFAIK我们应该以类似的不可变方式修改它。
在更新状态方面,将它存储在Redux中会产生额外的限制吗?
答案 0 :(得分:1)
不,它在减速机中的工作方式(几乎)相同。您将根据之前的状态返回一个新对象,这正是redux要求您做的事情。
但请注意,与React的setState
,不同,您需要在reducer中返回整个州。通常使用Object.assign
或...
运算符来完成此操作:return { ...state, changedThing: 'value' };
。而在React中,setState({ changedThing: 'value' })
就足够了。
那我认为这是你的额外限制。