【问题标题】:Wait for dispatch to end in redux等待调度以 redux 结束
【发布时间】:2020-10-19 19:42:15
【问题描述】:

我正在使用 React Native 构建一个离线应用程序,并且因为我需要在屏幕之间传递很多数据,所以我决定使用 redux。但是,我对调度方法有疑问。调度方法是同步的吧?那么当我在调度之后有代码时会发生什么,这取决于调度所做的更改?比如我有这个功能:

make_action(){ 
 this.props.dispatch(action());
 //rest of the code

}

如何确保“其余代码”仅在调度完成后运行?谢谢大家!!

【问题讨论】:

    标签: react-native redux


    【解决方案1】:

    简短的回答是,如果你想遵循 Redux,实际上不要把那个逻辑放在那里,你用“其余代码”注释来指示。

    相反,您将使用 reducer 来处理操作的结果并将其转换为(存储)状态更改。然后,您将使用状态来驱动受影响的视图(例如容器或组件),这可能就像在其现有的渲染方法(如果是类)或函数体(如果是纯函数)中使用该状态一样简单。考虑一下您标记为“其余代码”的代码,以及它是否应该存在于操作本身、状态处理(reducer)或渲染视图中。通常在 React+Redux 应用程序中,您提议的此类代码将存在于其中一个或多个地方,或者可能根本不需要。

    如果你在你有“其余代码”注释的地方引入代码实际上取决于当时已经完成的操作,那么你实际上是在绕过(或反对)Redux。

    请记住,Redux 操作应该只返回由 reducer 解释为改变状态的结果,从而驱动视图。它的目的是成为unidirectional, cyclical flow of data

    view 调度动作 ->

    action 做一些事情来产生结果 ->

    结果被简化为变异的状态,驱动更新的视图 ->

    ...(现在我们回到查看;重复)

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 2021-03-05
      • 2019-01-06
      • 1970-01-01
      • 2023-03-23
      • 2019-04-25
      • 1970-01-01
      • 2017-04-18
      • 2019-01-31
      相关资源
      最近更新 更多