Redux与React-Native和mapStateToProps
我已阅读此主题。 What is the difference between state and props in React?Redux与React-Native和mapStateToProps
它说,道具是不同的国家和理想的道具不应该改变其组件,只应改变其父组件。
然而,react-redux中的mapStateToProps函数将Redux中的状态映射到React组件的道具,当Redux状态被Redux动作改变时,它基本上改变了React组件的道具。
这对我没有意义。它似乎应该是mapStateToStates而是将Redux状态映射到React组件的状态。
我错过了什么吗?
它说,道具都来自不同的国家和理想的道具应该 不能在其组成的变化,只应该由它的 父组件来改变。
此处的状态指的是组件内部状态,组件可通过.setState()
在内部更改该组件。
然而,mapStateToProps功能在反应-Redux的映射状态在终极版 到反应的组分,当Redux的状态由终极版作用而改变其基本上改变 的道具阵营组分的道具。
这里的状态指的是redux store,一个外部状态。 react-redux的connect
方法创建一个HOC高阶组件(一个知道商店状态变化的组件)。 HOC包装愚蠢的反应组件,它不知道商店。使用mapStateToProps
HOC映射来自外部状态的数据,并通过道具将其注入反应组件。在HOC> mapStateToProps - -
在终极版存储状态>道具传递给哑组件
所以HOC是父,哑巴成分是孩子。父母将新的道具注入到子组件中,并且第1个断言“道具不应在其组件中更改,只应由其父组件更改”不会被违反。
注:有关高阶组件
更多信息可以在丹·阿布拉莫夫的文章约Presentational and Container Components被发现。
要了解如何反应,Redux的连接工程 - 在网上免费课程,Getting Started with Redux,丹阿布拉莫夫展示了如何从头开始建立连接(教训22-29)
state
在这里mapStateToProps
意味着state
在ReduxStore
。它地图
Redux
state
到ReactComponent
props
。不一定要将道具映射到状态,例如Pure Component
mapStateToProps使用react-redux connect()函数将状态作为道具传递给组件。考虑connect()函数作为包装器组件,它将道具传递给儿童。
mapStateToProps
connect (state) -----------------------> component(props)
感谢提到HOC。看起来像'connect'方法创建一个HOC,它是一个包装器(或父组件),它可以改变它的子组件(或连接的组件)的道具。这说得通!我的理解是否正确? – gpminsuk
确实如此:)如果你想在一点 - 在线免费课程,[Redux入门](https://egghead.io/courses/getting-started-with-redux),Dan Abramov build从头开始连接(课程22-29)。 –