react中const {dispatch} = this.props;

这个dispatch属性是怎么获得的?

阅读 23k
6 个回答

这个和 react 无关

const {dispatch} = this.props;

这段代码你可以认为是这样:

const dispatch = this.props.dispatch;

那样写是 ES6 的简写形式。

是由connect传入的,当你没有设置mapDispatchToProps的时候默认是会return { dispatch }的,如果你自定义了mapDispatchToProps方法就需要你手动把dispatch返回了。比如:

const mapDispatchToProps=(dispatch) => {
  return {
    onAdd:()=>{
      dispatch(action)
    },
    dispatch //这里如果不写,this.props就获取不到
  }
}

es6对象解构

//让一个变量teacher指向对象school的teacher,var teacher = school.teacher

var school = { teacher : 4 , stu: 600}
ES6写法:var {teacher}=school

可以使用var加逗号在一行中同时声明多个变量,解构的花括号内使用逗号可以做一样的事情。

var {teacher, stu} =  school

解构还允许我们使用别名,加上:即可var {teacher:ter, stu} =  school

原文:https://blog.csdn.net/YeShenL...

应该是作者把actions封装在key为dispatch.
比如我就直接叫actions:

clipboard.png

你觉得绑定在props下的名为dispatch应该是什么东西?

当你用React Redux的connect进行封装的时候,connect方法会把dispatch放到props中

当你的这个组件用redux中的方法connect连接后,例如这样

const mapStateToProps = (state) => {
    const { environment:{ legalData } }=state;
    return {
        legalData
    }
}

export default connect(mapStateToProps)(Justice) ;

此时,dispatch就可以作为props传入到这个组件当中了

推荐问题
宣传栏