问题标签 [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 投票
1 回答
2018 浏览

javascript - redux-saga 第一次不起作用

我有一个 redux-saga 如下:

和根传奇:

我面临一个loadApplianceSaga第一次不起作用的问题。我登录并看到它第一次只发送ActionTypes.APPLIANCE.LOAD动作然后没有发送任何动作。但是在第二次,我可以看到发送的成功动作或失败动作。

谁能告诉我出了什么问题?提前致谢!

更新操作

0 投票
1 回答
2420 浏览

javascript - Redux-saga 不等待 API 的响应

我使用 redux-saga 并创建了一个checkUsername执行 API 调用的生成器。我虽然这const username将等于来自 API 的响应,但我有undefined.

虽然在我的checkUsername函数中,调用 APIres是相等的{"isExist": false}

为什么我const username的不相等{"isExist": false}

0 投票
3 回答
22988 浏览

javascript - 多个 redux-sagas

我在这个示例中使用 react-redux 和 redux-saga 进行 API 调用。我的目标是使用不同的 url 进行另一个 API 调用,并在不同的页面中使用它们。如何做到这一点?

传奇:

应用程序:

我的目标是制作另一个传奇,我将在另一个组件中使用它,并且两者都不会互相干扰。这可能吗?

0 投票
2 回答
3989 浏览

reactjs - 从 redux-saga 访问 props.location 对象

this.props.location.pathname我的最终目标是在进行 API 调用时访问redux-saga 内部。这是我当前的工作解决方案,尽管反应引发错误。我正在mxstbr/react-boilerplate-brand用作我的代码库。

在我的包装组件中App,我的渲染方法中有以下行。

在我的mapDispatchToProps我有以下。基本上我只是保存this.props.location到 React 商店:

在我的内部,我redux-saga从状态访问该位置并根据需要使用它;然而,这是 React 引发的错误。

我不能把它放进去,componentWillMount因为它只会在应用程序启动时被触发一次,我不能把它放进去,componentWillUpdate因为在方法中this.props.location得到了更新。render我不能把它放进去,componentDidUpdate因为太晚了。

我只是错过了一些简单的方法来访问我的 redux-saga 中的 react-router 位置吗?

0 投票
1 回答
208 浏览

javascript - 特定日期时间的调度操作

我目前正在编写一个 React 应用程序,我需要在我的 Redux 状态下监听下一个日历条目。

我正在寻求有关如何最有效和正确地做到这一点的建议。

我的calendar状态减速器包括:

当下一个事件(事件 1)要发生时,我想调度一个事件,来处理这个日历条目的状态。条目缩减器可以随时更新,因此我需要能够在下一个条目之前推送条目。

我有 Redux 和 Redux Saga 来处理这个问题。

目前我正在使用 Redux Saga 监听器,例如:

但没有按预期工作,因为while第一次尝试后退出。我需要让它继续监听状态。以上并没有我想要的那么有效。

欢迎任何建议、想法或代码示例。

更新 1、2、3、4

我还在破解一点,更接近一点:

0 投票
1 回答
121 浏览

javascript - redux saga 的简单磁带 js 测试因未定义而失败

我已经为我的 sagas 编写了一些磁带测试,但最简单的示例由于同样的原因一直失败。我有一个单行传奇:

我的磁带测试同样简单:

但是,第一个断言失败并说该值未定义:

我已经确认我正在导入 saga,并且其他测试正在运行,为什么这个简单的测试会失败?

0 投票
5 回答
27801 浏览

reactjs - 加载路由时如何从无状态组件调度 Redux 操作?

目标:当加载一个 react-router 路由时,调度一个 Redux action 请求异步Saga worker 为该路由的底层无状态组件获取数据。

问题:无状态组件只是函数,没有生命周期方法,例如 componentDidMount,所以我不能(?)从函数内部调度 Redux 操作。

我的问题部分与将有状态 React 组件转换为无状态功能组件有关:如何实现“componentDidMount”类型的功能?,但我的目标是仅仅调度一个 Redux action 请求异步填充到存储中的数据(我使用 Saga,但我认为这与问题无关,因为我的目标是仅仅调度一个普通的 Redux 动作),之后由于更改了数据属性,无状态组件将重新渲染。

我正在考虑两种方法:要么使用react-router的某些功能,要么使用Redux 的connect方法。是否有所谓的“反应方式”来实现我的目标?

编辑:到目前为止,我想出的唯一解决方案是在 mapDispatchToProps 中调度操作,这种方式:

然而,这似乎有点肮脏而不是正确的方法。

0 投票
1 回答
3804 浏览

javascript - Sagas 和 fetch 承诺

由于这个 API 请求,我在这里的最后几分钟一直在桌子上敲打我的头......

我有以下代码:

佐贺:

API 请求:

API 请求确实返回了一个有效对象,但是 Saga 调用的返回始终是未定义的。谁能指导我到哪里错了?

提前致谢!

此致,

布鲁诺

0 投票
1 回答
460 浏览

redux-saga - 使用 redux-saga 控制 ajax 调用的顺序

我与一个复选框进行了交互,每次单击该复选框时都会触发一个 http 请求。

我希望在上一个通话结束后运行每个通话。

我的感觉是 redux-saga 非常适合这个,但我不明白如何为这种交互建模。

如果我使用call,任何进来的请求都将被忽略,直到

如果我使用fork,呼叫将同时进行。我不清楚是否/如何等待任务完成。yield task会这样做吗?

我看到频道可以“缓冲”请求,但我不清楚如何以这种方式使用频道。

0 投票
0 回答
584 浏览

performance - 有没有人尝试过从使用 redux-saga 获得的响应中延迟加载?

所以我有 API 获取请求返回一个包含 1000 个对象的列表。=> 我使用 saga yield put API 来更新减速器中的状态。现在它运行良好,但我觉得像延迟加载这样的速度优化还有很大的空间。

有没有人尝试过更新并将结果传递到 reducer 中的 Store?

这是我的伪代码:

上面的调用会更新 store reducer 并随后更新浏览器中的 UI。我正在尝试实现延迟加载..或类似的东西。如果有什么建议,我想听听。

谢谢!