【问题标题】:React Redux: What does this syntax meanReact Redux:这个语法是什么意思
【发布时间】:2019-11-07 15:30:57
【问题描述】:

我已经在一个 react 应用中实现了 redux,但我对这种语法感到困惑:

connect(mapState)(MyComponent)

如果两个参数都传递给连接,为什么第二个参数需要在单独的大括号中?

【问题讨论】:

  • connect(mapState) 返回一个函数,然后接受一个组件作为参数。

标签: javascript react-redux


【解决方案1】:

所以你可能已经习惯了这种语法。只有你一步一步看清一切 这样想是对等的;

const enhancer = connect(mapState);
const YourConnectedComponent = enhancer(MyComponent);

因此,如果您不将连接的结果分配到变量中,而是直接使用它,那也是一样的,因为它是一个函数,您会将其视为:

const YourConnectedComponent = connect(mapState)(MyComponent)

【讨论】:

    【解决方案2】:

    从技术上讲,您的组件将与redux 存储连接一次:

    1. connect 已使用返回函数的 mapStateToProps 变量调用
    2. 在调用此函数后将使用传递的MyComponent 参数。

    来自reduxdocumentation

    connect() 函数将 React 组件连接到 Redux 存储。它向其连接的组件提供它需要从存储中获取的数据片段,以及它可以用来向存储分派操作的函数。

    这样redux 将自动处理组件中的props 状态更改。

    【讨论】:

      猜你喜欢
      • 2016-07-31
      • 1970-01-01
      • 2012-07-25
      • 2011-11-13
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多