如何从容器中的商店获取状态?

时间:2016-06-12 18:28:29

标签: reactjs redux react-redux

我对如何从容器中获取状态感到困惑。我很好地将调度映射到道具&调度行动。

在文档中它声明了store.getState(),但是我首先需要mapStateToProps来调用this.props.getState(),或者我可以简单地在我的容器中的任何地方调用store.getState()我会有权访问通过我的提供商传递的商店吗?

2 个答案:

答案 0 :(得分:3)

connect()函数的第一个参数是一个称为mapStateToProps的可选函数。如果提供mapState参数,connect()生成的包装器组件将在每次更新存储时自动调用mapState函数,并传递新状态。然后,您的mapState函数应该提取连接组件所需的任何数据,然后返回它们。 (mapStateToProps实际上只是被称为“选择器”函数的概念的特定用法 - 有关使用选择器的更多示例,请参阅http://redux.js.org/docs/recipes/ComputingDerivedData.html

您自己的组件代码永远不应该直接访问商店,而只是接受传入的道具。请参阅http://redux.js.org/docs/FAQ.html#store-setup-multiple-stores

答案 1 :(得分:0)

所以这就是我所理解的Redux流程。 您可以从容器中调用一个操作,例如一个onClick方法,该方法反过来会减少并返回状态的副本。 您可以在mapStateToProps函数中使用此状态副本,该函数将您的props对象设置为新的状态对象。 您的渲染功能将利用这个新更新的道具对象,并在状态有任何更新时进行渲染。

希望这可以解决您的疑问。

查看我的github repo,我已经制作了一个简单的课程应用程序来添加/管理课程。 https://github.com/sidharthmehra/ReactReduxApp