如果我们已经有调度作为道具,为什么我们需要mapDispatchToProps?

时间:2018-07-04 19:43:16

标签: javascript reactjs redux

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

//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,该组件现在将把派遣作为属性,但是有什么重要区别吗?

1 个答案:

答案 0 :(得分:2)

通过mapDispatchToProps,您可以直接在组件中使用映射的道具。 (即,您不需要显式实现handleClick作为doSthOnClick的包装器。)

此外,如果演示者和容器之间的分隔良好,则容器通常仅用于调度操作,从而使代码更简洁。您最终可能不需要处理props.dispatch

相关问题