Promise 作为 redux 状态的一部分

弗拉迪斯拉夫·扎瓦雷哈特科

我有一种情况,将 promise 对象作为状态的一部分会非常方便。简而言之 - 有一个状态包含用户在问答模式下提供的所有信息,在回答一些问题之后,发送一个电话会很好,在再问几个问题后将需要结果:

Q1 -> Q2 -> Q3 - -> Q4 - - -> Q5 -> Q6 -> Q7 
                 \ - - Call to API - - /

在 Q7 之前,我需要检查 Q3 之后的通话结果。将承诺作为状态的一部分,然后订阅结果真的很容易。但我内心有一种感觉,它不应该发生。这样做可以吗?

我认为我的代码不会有助于理解,所以如果不清楚,请随时提出问题。

蒂莫特格尔

你不应该这样做,因为序列化你的状态将不再可能。不确定的问题有多少,它可能只会破坏您正在使用或将使用的开发工具或某些持久性/水化库。但是要忠于 redux 及其简单性,请将您的场景简化为一个事实:

  • 当前问题是否已经过了 Q3 但仍在 Q7 之前?我想选择器可以确定这一点,因为当前问题肯定已经是状态的一部分。
  • 是否已请求获取数据?

基于此,您发送请求:

if (currentQuestion > 3 && currentQuestion < 7 && !isDataRequested) {
    dispatch(callToApi()); // this sets isDataRequested to true.
}

这将有助于保持和滋润状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“state.set 不是函数”作为我的 react-redux-immutable 学习曲线的一部分

如何使用 redux-persist 仅存储一部分 redux 状态

使用Promise.All作为数组或对象的一部分来解决Promise.all

组件中仅呈现了一部分更新状态(React / Redux)

使用变量作为语句的一部分

块作为块的一部分

if 条件作为 GIT 命令的一部分

UiSegmentedControl作为UILabel子类的一部分

将标题作为CURL的一部分

使用 redux 和 react,为什么获取新数据会删除我以前状态的一部分?

如何重置一部分 Redux,但保留其余部分?

如何在Paw中将文件作为多部分请求的一部分上载?

如何将反应状态中的值作为变量包含在 API 调用中作为查询参数的一部分

Javascript Promise 函数的哪一部分是异步的?

Node.js Promise仅返回应有的一部分

如何通过一个环境变量作为命令的一部分

保留数组的第一个元素作为序列的一部分

查找多个作为一个的一部分

如何将一个UIViewController作为屏幕的一部分

Scala错误处理-如果我的Scala代码的一部分失败,我想将function()作为程序的一部分执行

Active Directory:是否可以将 Computer$ 帐户作为组的一部分(例如 USERS 组的一部分)

如何将Redux存储的一部分转换为数组

不删除行作为函数的一部分-python

如何扩展波浪符号〜作为变量的一部分?

Identity Server作为Web API或单独应用程序的一部分

角材料matDatepicker和Textarea作为表单的一部分

从 C# 程序集中提取版本作为 Jenkins 管道的一部分

如何使用reCAPTCHA作为弹出窗口而不是网络的一部分?

如何在子查询中使用HAVING作为Select语句的一部分