mapDispatchToProps的三种方式mapStateToProps

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)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值