我对如何从容器中获取状态感到困惑。我很好地将调度映射到道具&调度行动。
在文档中它声明了store.getState(),但是我首先需要mapStateToProps来调用this.props.getState(),或者我可以简单地在我的容器中的任何地方调用store.getState()我会有权访问通过我的提供商传递的商店吗?
答案 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