我已经阅读了这个主题。React中的state和props有什么区别?
它说道具与国家有所不同,理想情况下,道具的组成部分不应更改,而只能由其父组件更改。
但是,react-redux中的mapStateToProps函数将Redux中的状态映射到React组件的props,当Redux状态通过Redux动作更改时,这基本上是在更改React组件的props。
这对我来说没有意义。似乎应该改为mapStateToStates并将Redux状态映射到React组件的状态。
我想念什么吗?
它说道具与国家有所不同,理想情况下,道具的组成部分不应更改,而只能由其父组件更改。
这里的状态是指组件的内部状态,组件可以通过进行内部更改.setState()
。
但是,react-redux中的mapStateToProps函数将Redux中的状态映射到React组件的props,当Redux状态通过Redux动作更改时,这基本上是在更改React组件的props。
这里的状态是指redux存储,即外部状态。react-redux的connect
方法创建一个HOC-高阶组件(一个知道商店状态变化的组件)。HOC包装了不知道存储的哑响应组件。使用mapStateToProps
HOC可以从外部状态映射数据,然后通过props将其注入到react组件。
Redux存储中的状态-> HOC中的mapStateToProps->传递给哑组件的道具
因此,HOC是父级,而哑成员是子级。父级向子级组件注入新的props,并且不违反第一个断言“ props不应在其组件中更改,而应仅由其父级组件更改”。
笔记:
有关高阶组件的更多信息,请参见Dan Abramov的有关Presentational和Container Components的文章。
要了解react-redux connect是如何工作的-在在线免费课程Redux入门中,Dan Abramov展示了如何从头开始建立连接(第22-29节)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句