我不明白为什么会有所不同。让我举例说明我的意思:
//actions.js
export const doSthOnClick = () => {
return {
type: 'ACTION'
}
}
//example.js
import {doSthOnClick} from './actions';
//...
//handle click first option
handleClick = () => {
this.props.doSthOnClick() //from mapDispatchToProps
}
//handle click second option
handleClick = () => {
this.props.dispatch(doSthOnClick()) //the imported
}
//...
<div onClick={handleClick}></div>
//...
const mapDispatchToProps = (dispatch) => {
doSthOnClick: () => dispatch(doSthOnClick)
}
//connect
我知道,如果我们使用mapDispatchToProps,该组件现在将把派遣作为属性,但是有什么重要区别吗?
答案 0 :(得分:2)
通过mapDispatchToProps
,您可以直接在组件中使用映射的道具。 (即,您不需要显式实现handleClick
作为doSthOnClick
的包装器。)
此外,如果演示者和容器之间的分隔良好,则容器通常仅用于调度操作,从而使代码更简洁。您最终可能不需要处理props.dispatch
。