为什么需要通过getState()函数检索Redux状态而不仅仅是.state属性,就像在React组件中一样

时间:2016-06-17 16:39:24

标签: reactjs redux

React Components api:
SETTER:。setState()
加特:.state

Redux api:
SETTER:在减速器中 GETTER:.getState()

为什么Redux中的状态不能通过.state访问?

2 个答案:

答案 0 :(得分:2)

Redux将状态作为私有变量而不是暴露属性处理。

因此,做 gender age population H 0-14 20 H 15-19 15 H 20-29 25 M 0-14 10 M 15-19 15 M 20-29 25 * store.state.counter = 43之类的事情是不可能用脚射击自己的。改变状态的唯一方法是推荐的方法 - 通过调度操作。

<强> *更新
好吧,我猜你也可以用store.state = newState射击自己。从the source看,从开发的角度看,getter语法似乎更方便,因为现在不需要保持任何公共store.getState().counter = 43属性为最新。您可以使用store.state函数执行任何操作,无论上下文如何,它都可以正常工作。

答案 1 :(得分:1)

无论API提供什么语法,您都应该很少使用.getState()来访问Redux商店的整个状态(如果有的话)。您应该使用the official React bindings for Redux为组件提供状态。

Here's the official documentation for using React with Redux.