首页 > 技术文章 > mapDispatchToProps的三种方式

liangziaha 2021-03-05 17:15 原文

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)

————————————————
版权声明:本文为CSDN博主「Polaris_tl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Polaris_tl/article/details/103489573

推荐阅读