【问题标题】:Redux-saga, optimal way of handling this close modal flowRedux-saga,处理这种封闭模态流的最佳方式
【发布时间】:2018-05-09 05:43:09
【问题描述】:

想象有一个模式/对话框打开。在该模式中,有一个保存按钮,它调度由 redux-saga 拾取的 updateUser 操作。 redux-saga 然后进行网络调用。如果此网络调用成功,则模式应自动关闭。使用 redux-saga 执行此操作的最佳方式是什么?

在 redux thunk 中,我们将调度操作(承诺),然后我们可以在网络调用成功时链接一个 'then' 来处理模式关闭,就在组件中。所以我和一位同事想知道,用 redux-saga 做这件事的最佳方法是什么?

【问题讨论】:

  • 首先是什么触发了模式显示?是应用/存储状态的数据吗?
  • 用户通过单击按钮打开模式。这可以在商店或当地状态下完成。我们想知道什么是最佳的,如果没有 redux saga,我们会将“isModalOpen”保留在本地状态。现在看来我们必须以某种方式将模态链接到我们的 redux 存储。
  • 我会将isModelOpen 移动到应用程序状态。如果组件之外的任何东西需要访问该信息,请将其上移。

标签: reactjs redux-saga


【解决方案1】:

我的看法:

  • 假设模态的所有者将打开/关闭状态保持为本地状态
  • 我们还假设在任何一种情况下(成功或失败)都涉及一些全局状态 (redux) 更改

现在流程:

  • 点击按钮触发动作,你的传奇就成功了
  • 在模态的所有者组件中“订阅”您的 saga 对全局状态所做的更改(在 connects mapStateToProps 中也将此状态附加到您的道具中)
  • 在模态所有者组件的componentWillReceiveProps 中,在模态打开时监视这些更改,并相应地更新本地打开/关闭状态

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2021-03-01
    • 2021-08-18
    • 2020-05-09
    • 2011-03-09
    相关资源
    最近更新 更多