wuyuanlijie/blog

Redux中的connect

Opened this issue · 0 comments

connect 主要的作用是连接React组件与Redux store。

connect(mapStateToProps, mapDispatchToProps, mergeProps, options)
第一个参数就是传入Redux的store,第二个参数就是将action作为props绑定到组件上。

主要由于是Provider组件:1、在原组件上包裹一层,使得原来的整个应用都成为Provider的子组件
2、接收Redux的store作为props,通过context对象传递给子孙组件上的connect。

connect主要是真正连接Redux和React,它是抱在我们容器组件的外一层,接收上面的Provider提供的store里面的state和dispatch

传给一个构造函数,返回一个对象,以属性的形式传递给我们的容器组件。

源码的分析:connect是一个高阶函数,首先传入mapStateToProps、mapDispatchToProps,然后返回一个生产Component的函数(wrapWithContext),

然后将真正的Component作为参数传递给wrapWithConnect,这样就产生了一个经过包裹了Connect的组件。(将数据都绑定到props上,并且获取到我们想要的数据)

理解:总的来说,是获取到父组件中的store,获取到自己想要的state、dispatch。并且作为props 传递给当前的组件!

这样当前的组件就可以通过this.props.state.xxx 获取state的值,
当前的组件就通过this.props.actions.xxx 来获取action中的方法,里面可以触发dispatch的事件。