1、mapStateToProps
const mapStateToProps = state => ({
color: state.reducerA.color,
fontSize:state.reducerB.fontSize
})
2、mapDispatchToProps
- 1、当
connect(mapState,null)
不传递第二个参数(或为null
)时,可以直接在当前组件的this.props.dispatch
拿到dispatch
方法
this.props.dispatch({
type:ChangeColor,
payload:{
color:e.target.value
}
})
- 2、当
connect(mapState,mapDispatch)
的第二个参数为一个函数时,需要把dispatch
作为参数传入,该函数返回一个对象,每个键对应着一个函数,在这里面需要显式的调用传进来的dispatch
方法;
// mapDispatch为一个函数
const mapDispatchToProps = (dispatch) => ({
changeColor : (value) => (dispatch({
type:ChangeColor,
payload:{
color:value
}
})),
})
调用时,
this.props.changeColor (value)
- 3、当
connect(mapState,mapDispatch)
的第二个参数为一个对象时,这时不用再把dispatch传递进去并显式的调用
// mapDispatch为一个对象
const changeColor = (v) => ({
type:ChangeColor,
payload:{
color:v
}
})
const mapDispatchToProps = {
changeColor ,
}
调用时,
this.props.changeColor (value)