问题标签 [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 回答
2724 浏览

javascript - 使用 Redux Saga 显示 HTTP 请求响应

嘿,所以我想从 react-saga 的请求中获取 json !我想知道如何获取我的 saga 产生的数据,我有一个想法在 componentWillMount 中调用生成器函数,该函数使用 takeLatest 监视“REQUEST_DONE”操作,然后重新渲染。

但我认为在我的一个组件中使用 react-saga 是个坏主意。请指导

我的传奇文件:

我的组件

0 投票
1 回答
2085 浏览

reactjs - 渲染前的 Redux 调度

我想在渲染组件之前调度一个动作。但是该动作是与 redux-saga 集成的异步动作。

我必须知道异步操作何时完成,如果完成,则渲染组件。为了完成这项工作,我为每个容器设置了一个唯一的 ID,并且在操作完成后,属性 { loaded: true } 将被保存到存储中。

我正在考虑这种方式

@preloadcomponenWillMount是一个函数在(对于服务器端)或(对于客户端)触发指定的动作componenDidMount,当动作调用时resolve()state.preloadState.uniqueId.loaded将设置为true。它还包装组件,以便仅在state.preloadState.uniqueId.loaded === true.

@connect在指定的操作中将我想要预加载的数据连接到 redux 存储中。

我想知道为 redux、redux-saga 应用程序和服务器端渲染进行数据预加载是否是常见的做法(我之前使用过 redux-async-connect,但我想让所有嵌套组件都能够进行数据预加载所以我绑定到 componentWillMount 而不是一些静态函数)。

0 投票
4 回答
19733 浏览

reactjs - redux 中的选择器是什么?

我正在尝试遵循此代码redux-saga

然后像这样在传奇中使用它:

这个getUser减速器(它甚至是减速器)看起来与我通常期望的减速器看起来非常不同。

谁能解释一下选择器是什么,getUserreducer 是怎样的,以及它是如何适应 redux-saga 的?

0 投票
0 回答
151 浏览

react-router - 如何在 Redex-Saga 中进行 React-Router 页面转换

我使用 React-Router 和 Redux-Saga,如果我想在我的 Sagas 中做 React-Router 页面转换,我该怎么做?谢谢。

0 投票
3 回答
1903 浏览

javascript - 如何在没有 break 语句的情况下结束 while (true) 循环?

我正在浏览 redux-saga 频道文档。我遇到代码的地方:

如您所见,这是一个永远不会结束的无限循环,您应该调用 break 或 throw 和异常。但在上面的例子中,情况并非如此。上面的代码或调用函数中没有引发中断或异常。上面的无限循环怎么可能结束并到达finally块?

见:http: //yelouafi.github.io/redux-saga/docs/advanced/Channels.html

0 投票
1 回答
324 浏览

react-router - 如果在反应路由器中重定向到登录,在哪里保存“下一个路径名”?

我使用 react-router 和 react-router-redux,如果他尝试访问需要登录的页面而不登录,我会将用户重定向到登录页面:

在用户登录后,我会将用户重定向到“/react/myprofile”:在我的 redux-saga 中,我执行以下操作:

如上所述,我必须从中检索信息 route_state.locationBeforeTransitions.state.nextPathname,这太冗长了,这样做似乎很奇怪。

我想知道是否有更好的方法来做到这一点?谢谢。

0 投票
0 回答
168 浏览

reactjs - react redux saga rootTask.done 从未解决

当我运行 sagaMiddleware

rootTask 的(返回的 sagaMiddleware.run(rootSaga)) done Promise 从未得到解决,问题出在哪里?

todo.sagas.js

注册Sagas.js

服务端渲染 rootTask 从未被解决,持续等待!

0 投票
1 回答
2723 浏览

reactjs - Call yield put() inside a success callback

I am brand new to React and Redux.

I am using react-redux to call the AWS Cognito service which takes an object containing a success and failure callback. I get my JWT back from AWS Cognito when I console.log inside my success callback; however, how can I yield put() inside this callback since it's not a generator function (function*).

Here's some code:

0 投票
1 回答
284 浏览

javascript - ECMA 2015:如何在回调例程中使用带有“yield”的异步函数?

在使用ReduxRedux-Saga的 ECMA-2015-App(具体:React Native)中,我们经常大量使用这样的代码(工作正常,这里不是真正的问题):

这里有个简短的问题:但是,是否有可能在回调函数中结合异步函数和 yield-constructs?

更长的问题:

为了在用户设备上使用本地 sqlite-database,我们使用了这个很棒的库react-native-sqlite-storage

为了在一个事务中封装多个 sql 语句,回调是必要的,如下所示:

当所有这些语句都封装在一个大的单个事务中时,在许多 INSERT 或 UPDATE 上加速 sqlite 是众所周知的最佳实践。

但是由于我们使用带有大量“yield”语句的 redux 来在业务逻辑和 UI 更新之间进行通信,所以我们现在遇到了问题。

有人在这里有想法吗?

0 投票
3 回答
2868 浏览

javascript - 如何在 fetch 调用返回的 Promise 中使用生成器函数作为回调?

以上可能吗?当回调函数是生成器时,我没有得到控制台输出,这意味着控件没有传递给回调函数(生成器)。我想这样做的真正原因是我必须使用上述回调中的 redux-saga 的 'call' 辅助函数调用另一个 fetch 请求,该回调只能从生成器函数调用。