问题标签 [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.
javascript - redux-saga 第一次不起作用
我有一个 redux-saga 如下:
和根传奇:
我面临一个loadApplianceSaga
第一次不起作用的问题。我登录并看到它第一次只发送ActionTypes.APPLIANCE.LOAD
动作然后没有发送任何动作。但是在第二次,我可以看到发送的成功动作或失败动作。
谁能告诉我出了什么问题?提前致谢!
更新操作:
javascript - Redux-saga 不等待 API 的响应
我使用 redux-saga 并创建了一个checkUsername
执行 API 调用的生成器。我虽然这const username
将等于来自 API 的响应,但我有undefined
.
虽然在我的checkUsername
函数中,调用 APIres
是相等的{"isExist": false}
:
为什么我const username
的不相等{"isExist": false}
?
javascript - 多个 redux-sagas
我在这个示例中使用 react-redux 和 redux-saga 进行 API 调用。我的目标是使用不同的 url 进行另一个 API 调用,并在不同的页面中使用它们。如何做到这一点?
传奇:
应用程序:
我的目标是制作另一个传奇,我将在另一个组件中使用它,并且两者都不会互相干扰。这可能吗?
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 位置吗?
javascript - 特定日期时间的调度操作
我目前正在编写一个 React 应用程序,我需要在我的 Redux 状态下监听下一个日历条目。
我正在寻求有关如何最有效和正确地做到这一点的建议。
我的calendar
状态减速器包括:
当下一个事件(事件 1)要发生时,我想调度一个事件,来处理这个日历条目的状态。条目缩减器可以随时更新,因此我需要能够在下一个条目之前推送条目。
我有 Redux 和 Redux Saga 来处理这个问题。
目前我正在使用 Redux Saga 监听器,例如:
但没有按预期工作,因为while
第一次尝试后退出。我需要让它继续监听状态。以上并没有我想要的那么有效。
欢迎任何建议、想法或代码示例。
更新 1、2、3、4
我还在破解一点,更接近一点:
javascript - redux saga 的简单磁带 js 测试因未定义而失败
我已经为我的 sagas 编写了一些磁带测试,但最简单的示例由于同样的原因一直失败。我有一个单行传奇:
我的磁带测试同样简单:
但是,第一个断言失败并说该值未定义:
我已经确认我正在导入 saga,并且其他测试正在运行,为什么这个简单的测试会失败?
reactjs - 加载路由时如何从无状态组件调度 Redux 操作?
目标:当加载一个 react-router 路由时,调度一个 Redux action 请求异步Saga worker 为该路由的底层无状态组件获取数据。
问题:无状态组件只是函数,没有生命周期方法,例如 componentDidMount,所以我不能(?)从函数内部调度 Redux 操作。
我的问题部分与将有状态 React 组件转换为无状态功能组件有关:如何实现“componentDidMount”类型的功能?,但我的目标是仅仅调度一个 Redux action 请求异步填充到存储中的数据(我使用 Saga,但我认为这与问题无关,因为我的目标是仅仅调度一个普通的 Redux 动作),之后由于更改了数据属性,无状态组件将重新渲染。
我正在考虑两种方法:要么使用react-router的某些功能,要么使用Redux 的connect方法。是否有所谓的“反应方式”来实现我的目标?
编辑:到目前为止,我想出的唯一解决方案是在 mapDispatchToProps 中调度操作,这种方式:
然而,这似乎有点肮脏而不是正确的方法。
javascript - Sagas 和 fetch 承诺
由于这个 API 请求,我在这里的最后几分钟一直在桌子上敲打我的头......
我有以下代码:
佐贺:
API 请求:
API 请求确实返回了一个有效对象,但是 Saga 调用的返回始终是未定义的。谁能指导我到哪里错了?
提前致谢!
此致,
布鲁诺
redux-saga - 使用 redux-saga 控制 ajax 调用的顺序
我与一个复选框进行了交互,每次单击该复选框时都会触发一个 http 请求。
我希望在上一个通话结束后运行每个通话。
我的感觉是 redux-saga 非常适合这个,但我不明白如何为这种交互建模。
如果我使用call
,任何进来的请求都将被忽略,直到
如果我使用fork
,呼叫将同时进行。我不清楚是否/如何等待任务完成。yield task
会这样做吗?
我看到频道可以“缓冲”请求,但我不清楚如何以这种方式使用频道。
performance - 有没有人尝试过从使用 redux-saga 获得的响应中延迟加载?
所以我有 API 获取请求返回一个包含 1000 个对象的列表。=> 我使用 saga yield put API 来更新减速器中的状态。现在它运行良好,但我觉得像延迟加载这样的速度优化还有很大的空间。
有没有人尝试过更新并将结果传递到 reducer 中的 Store?
这是我的伪代码:
上面的调用会更新 store reducer 并随后更新浏览器中的 UI。我正在尝试实现延迟加载..或类似的东西。如果有什么建议,我想听听。
谢谢!