我真的不明白为什么会有所不同。让我举个例子来说明我的意思:
//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,组件现在会将调度作为属性获取,但是有什么重要的区别吗?
最佳答案
通过mapDispatchToProps
,您可以直接在组件中使用映射的 props。 (即,您不需要显式实现 handleClick
作为 doSthOnClick
的包装器。)
此外,如果演示者和容器分开良好,则容器主要仅用于分派(dispatch)操作,从而产生更清晰的代码。您最终可能不需要处理 props.dispatch
。
关于javascript - 如果我们已经有了dispatch作为props,为什么还需要mapDispatchToProps呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180013/