我真的不明白为什么会有所不同。让我举例说明我的意思:



//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/

10-11 17:55