Reactjs 在React/Redux中,作为发送任何动作的道具进行一般发送是否合适?

Reactjs 在React/Redux中,作为发送任何动作的道具进行一般发送是否合适?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,其中一个是代码 // action creator function loadData(dispatch, userId) { // needs to dispatch, so it is first argument return fetch(`http://data.com/${userId}`) .then(res => res.json()) .then( data => dispatch({ type: 'LOAD_DATA_SUCCESS'

其中一个是代码

// action creator
function loadData(dispatch, userId) { // needs to dispatch, so it is first argument
  return fetch(`http://data.com/${userId}`)
    .then(res => res.json())
    .then(
      data => dispatch({ type: 'LOAD_DATA_SUCCESS', data }),
      err => dispatch({ type: 'LOAD_DATA_FAILURE', err })
    );
}

// component
componentWillMount() {
  loadData(this.props.dispatch, this.props.userId); // don't forget to pass dispatch
}
似乎
mapDispatchToProps
只是将一般分派映射为props(作为
this.props.dispatch
),因此该组件可以分派任何操作

首先,它是一个好的表单,还是只是一个示例,但我们应该对其进行特定的分派,例如
this.props.dataReceived

其次,对于上面的代码,
mapDispatchToProps
将编写为:

const mapDispatchToProps = dispatchOfReduxStore => {
  return {
    dispatch: dispatchOfReduxStore
  }
}
甚至只是:

const mapDispatchToProps = dispatch => {
  return {
    dispatch
  }
}
并简化为:

const mapDispatchToProps = dispatch => ({ dispatch })
这个.props.dispatch
变成了一个多功能的dispatch


我还发现,当我们在
connect()
中省略
mapDispatchToProps
时,
this.props.dispatch
自动可用。

我认为将
dispatch
绑定到使用
mapDispatchToProps
的操作的主要原因是隐藏连接组件的redux

如果不绑定
dispatch
,您的组件必须知道您的操作是什么,并且记住,如果不将它们作为
dispatch
的参数调用,它们将不会执行任何操作

通过绑定,组件只知道它在
props
中有这些函数,它可以在需要时调用这些函数

另一个好处可以说是代码更简洁,因为您可以只调用
this.props.myAction()
而不是
this.props.dispatch(myAction())


我不认为这是对还是错。我认为其中一些是偏好。我更喜欢把我的组件写在他们只知道给他们的道具的地方。但您可能更愿意明确说明您的组件正在使用redux来分派操作。

他不是在谈论映射
dispatch
他是在谈论映射操作creators@sylvanaar我是说为什么会有一个
道具。调度
?以前从未见过,如果不提供
mapDispatchToProps
,则插入
dispatch
connect
的默认行为。如果你真的提供了它-你必须自己注射-就像你发现的那样。我明白了。。。默认情况下,您的组件将收到分派,即,当您不向connect()提供第二个参数时