问题标签 [redux-saga]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
780 浏览

redux - redux-saga 将前叉与比赛结合起来

有没有办法在 redux-saga中fork结合?race例如像这样的东西?

在此处输入图像描述

我想要实现的目标:我想在不阻塞 UI 的情况下获取,因此我可以对某些已调度的用户操作做出反应,例如SELECT_TAB_XYZ并立即切换选项卡但继续在后台获取。我猜默认情况下调度的动作被缓存(如果我这样做的话response: call(request, requestURL),)。

0 投票
1 回答
1391 浏览

reactjs - 如何在 redux-sagas 中设置并随后取消多个观察者

只是试图让我的头脑围绕 redux-sagas 并遇到一个问题,在一个 saga 中设置两个观察者,然后取消它们。

一些背景知识:我有一个 JSON 编辑器组件,其中 saga 处理对后端 API 的调用以加载和保存 JSON 模式。该项目基于React Boilerplate,因此应用程序的结构几乎完全相同。

以下是相关代码:

我认为这yield watcher.forEach(task => cancel(task))只会遍历任务数组,但它们不会被取消。

0 投票
1 回答
307 浏览

reactjs - 在 redux-saga 的自定义 API 中为服务器端包装用户请求

在处理身份验证的通用应用程序中,我们必须考虑每个用户都有自己的 cookie。所以我们需要存储他的初始请求对象,以便能够用他的 cookie 来装饰他未来的 API 调用。我不知道如何用 redux-saga 处理它,我想这项工作应该在自定义中间件中完成,以注入一个将用户请求对象包装到每个 saga 中的对象,至少我认为它可以完成这项工作,但是我不知道如何完全实现它。

我在想这样的事情:

我想在创建商店时有一些事情要做

0 投票
0 回答
44 浏览

reactjs - 与 AMD 一起使用的 redux-saga 效果需要

我想在我的加载一个 json 文件,redux-saga调用如下所示:

我想通过data一个.putaction

我可以使用哪种效果来wait调用require返回结果?像这样的伪代码:

const data = yield call(require("data.json"))

我可以使用这样的承诺:

但是有没有更优雅的方式呢?

0 投票
2 回答
1441 浏览

reactjs - Redux-saga 在取消后调用操作

我正在尝试在内部实现带有 redux-saga 的 React-boilerplate。所以我试图从服务器获取一些数据,然后重定向到另一个页面。问题是在重定向 saga 之前向服务器发出第二个请求。我想取消它有问题。这是我的代码的一部分:

所以在这个例子中我有两个控制台日志,第二个出现在重定向之前。我该如何解决?

还有一个问题。实际上,我在这个文件中有更多的功能。我应该为它们中的每一个创建“rootSaga”还是可以在 fetchDataRootSaga() 中全部取消它们?我的意思是如果我以这种方式取消 sagas 是否正常:

提前致谢!PS我不确定这段代码是否是最佳实践。它的灵感来自这个存储库

0 投票
2 回答
62901 浏览

javascript - getState 在 redux-saga 中?

我有一家商店,里面有物品清单。当我的应用程序第一次加载时,我需要反序列化这些项目,就像根据这些项目创建一些内存中的对象一样。这些项目存储在我的 redux 存储中并由itemsReducer.

作为副作用,我正在尝试使用redux-saga来处理反序列化。在第一页加载时,我调度了一个动作:

我的传奇设置很简单:

在我的反序列化传奇中,我想处理创建项目的内存版本的副作用,我需要从存储中读取现有数据。我不确定如何在这里做到这一点,或者如果这是我什至应该尝试使用 redux-saga 的模式。

0 投票
1 回答
124 浏览

redux - Redux saga 不会同时触发两个异步调用

我正在尝试使用 redux saga 在加载页面时同时进行异步调用......但只有 loadPositions() 被调用。有人知道为什么吗?我认为这与比赛条件有关。请纠正我。

0 投票
2 回答
5261 浏览

debugging - 如何调试 rxjs5?

RxJS - 目标我读到他们的目标是更好的可调试性:

目标

提供比以前版本的 RxJS 更多的可调试调用堆栈

我刚开始使用redux-observable它比较容易理解,redux-saga因为我已经习惯了使用lodashand的反应式风格ramda(好吧,也许是 fp 风格;)。我很惊讶还不能调试它。这是真的吗?如果是这样,那么我redux-saga可能要切换到 s 或坚持使用redux-thunk.

根据杰伊菲尔普斯的回答进行编辑

通过调试我的意思是:“如何在浏览器中设置断点observable.map(...)?” 有了lodash我可以在浏览器中设置一个断点,它就停在_.map(...). 如何用redux-observable(或rxjs)做到这一点?我不想依赖绘制大理石图和console.log().

0 投票
3 回答
11671 浏览

javascript - 如何从 saga 获取 action.params

我正在使用redux-saga. 在代码yield* ReduxSaga.takeEvery('MY_ACTION', updatePorts);中,我如何访问action以获取其字段。

例如,我有一个动作创建者:

如何action.status从我的传奇访问?还是我只能通过getState()select访问数据?

0 投票
1 回答
4632 浏览

redux-saga - reducer 和 saga 的顺序

当调度一个动作是它到达减速器和传奇时的顺序?

我可以依靠它吗

  1. 首先进入减速机
  2. 那么传奇呢?

减速器:

佐贺: