【问题标题】:How do I know when redux mapStateToProps values are connected and initialised in a component?我如何知道 redux mapStateToProps 值何时在组件中连接和初始化?
【发布时间】:2020-02-04 09:52:06
【问题描述】:

所以我很乐意将 React 与 connect() HOC 和 mapStateToProps 一起使用,并且效果非常好。然而,似乎在组件生命周期的开始附近,Redux 连接的 props 没有初始化。在组件生命周期中是否有特定点可以认为基于 mapStateToProps 的道具已初始化并等于存储中的值?

【问题讨论】:

  • 您在商店的初始状态是什么?

标签: reactjs react-redux


【解决方案1】:

好的,基于 mapStateToProps 的道具可用,因为您的组件中可以使用任何其他道具。问题是当你从 reducer 返回一个新状态时,所有的 mapStateToProps 都会被再次调用并从 redux 存储返回更新的状态, 所以你的初始状态可以作为任何其他道具使用。 您可以检查您的 componentDidMount() 将具有初始状态。

因为 connect 是一个 HOC,所以你的组件在 HOC 被调用后挂载并返回你的组件

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果您想提供一些默认值,请使用defaultProps

    根据redux的流程,当一个action被派发时,它去reducer改变store,具有connect函数的组件订阅state定义在mapStateToProps中。因此,当相应 state 中的值在 store 中发生变化时,props 将被初始化或提供该值。

    希望对你有帮助!!!

    【讨论】:

      【解决方案3】:

      所有的 props 都被初始化并且在组件中随处可用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-22
        • 2017-03-16
        • 1970-01-01
        • 2023-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多