代码之家  ›  专栏  ›  技术社区  ›  Liz Parody

反应简而言之,什么是mapDispatchToProps?

  •  3
  • Liz Parody  · 技术社区  · 8 年前

    我不理解这个函数。

    function mapDispatchToProps(dispatch) {
      return bindActionCreators({ selectBook: selectBook}, dispatch); 
    }
    
    5 回复  |  直到 8 年前
        1
  •  4
  •   Shubhnik Singh    8 年前

    MapStateTops 只返回应用程序的 state 存储在全局存储中,并作为 props .

    mapDispatchToProps 将动作创建者包装在redux中 dispatch 方法并将其作为 prop 状态 都作为道具传递给您的组件。你正在通过 状态 还有redux的 派遣 方法作为组件的道具。

    mapDispatchToProps = dispatch => ({
        dispatchAnAction: dispatch(actionCreator1)
    })
    

    这里连接的组件说 ComponentA 将收到道具,其中一个道具将 dispatchAnAction 由返回 mapDispatchToProps 如上述代码所示。您将呼叫 调度行动 这样地 this.props.dispatchAnAction() 以及 actionCreator1 将被发送到全球redux商店。

    this course 强烈建议。

        2
  •  2
  •   Dmitriy Buteiko    8 年前

    react redux库中的mapStateToProps、mapDispatchToProps和connect提供了一种方便的方式来访问商店的状态和调度功能。所以基本上connect是一个高阶组件,如果这对您有意义的话,您也可以将其作为包装器。所以,每次更改状态时,将使用新状态调用mapStateToProps,随后当您更新道具时,组件将运行渲染功能在浏览器中渲染组件。mapDispatchToProps还将键值存储在组件的道具上,通常它们采用函数的形式。通过这种方式,您可以从组件onClick、onChange事件触发状态更改。

        3
  •  1
  •   vanna    8 年前

    如果没有mapDispatchToProps,您需要手动调用商店上的dispatch。在这种情况下,您需要一个引用来存储对象。

    store.dispatch(selectBook(argument))
    

    mapDispatchToProps设置(状态、调度和操作)的语法糖,并将其作为组件的道具。

    因此,代码:

    function mapDispatchToProps(dispatch) {
        return bindActionCreators({ selectBook: selectBook}, dispatch); 
    }
    

    将导致

    props: { 
        selectBook: (arguments) => { dispatch(selectBook(arguments)) } 
    }
    
        4
  •  1
  •   Prasanna    8 年前

    调度动作可以定义为触发一个或多个还原器期望的特定类型的动作。

    简单来说, mapDispatchToProps this.props.{action_creator} .

        5
  •  1
  •   HexaCrop    8 年前

    mapDispatchToProps 只是一个界面,它将动作创建者传递到您的组件中,在同一组件中 动作创建者 可以作为道具访问。

    它与一起使用 功能,这样的方式 行动 由a返回 动作创建者 被调度到redux存储中,应用程序的所有状态都位于该存储中。

    mapDispatchToProps 当有多个 行动 在单个 动作创建者 .

    您可以返回多个 行动 在单个 动作创建者 派遣 中的参数 mapDispatchToProps

    推荐文章