这个dispatch属性是怎么获得的?
是由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
当你的这个组件用redux中的方法connect连接后,例如这样
const mapStateToProps = (state) => {
const { environment:{ legalData } }=state;
return {
legalData
}
}
export default connect(mapStateToProps)(Justice) ;
此时,dispatch就可以作为props传入到这个组件当中了
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
这个和
react
无关const {dispatch} = this.props;
这段代码你可以认为是这样:
const dispatch = this.props.dispatch;
那样写是 ES6 的简写形式。