我真的不明白为什么会有所不同。让我举例说明我的意思:
//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
,可以直接在组件中使用映射的道具。 (即,您无需显式实现handleClick
作为doSthOnClick
的包装器。)
另外,如果演示者和容器之间的分隔良好,则容器通常仅用于调度操作,从而使代码更简洁。您最终可能不需要处理props.dispatch
。
关于javascript - 如果我们已经有调度作为 Prop ,为什么我们需要mapDispatchToProps?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51180013/