问题标签 [redux-promise-middleware]

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 回答
1220 浏览

reactjs - 如何为整个应用程序制作单个加载器减速器,React

我有一个应用程序,其中有多个组件以及每个组件的操作和减速器。我也在使用 redux-pack 进行承诺处理。

所以情况就是这样,我只想为我的整个应用程序使用一个减速器来处理我的页面加载器。这意味着,每当 API 调用开始时,加载程序都应该显示,而在 API 结束时应该隐藏。我不想为此编写单独的操作。

请帮我提出您的建议。提前致谢。

0 投票
1 回答
815 浏览

typescript - Redux Promise Middleware 如何处理 dispatch 的返回类型?

Redux Promise Middleware 似乎处理了动作负载的承诺解析。例如,考虑这个使用 aPromise作为有效负载的动作创建者:

当使用这个动作创建器时,TypeScript 期望Action返回的数据,而不是Promise由于 redux-promise-middleware 而实际返回的数据。

所以下面的代码不会编译,因为Property 'then' does not exist on type 'Action'.

Typescript 期望返回的属性如payloadand type,实际上并没有返回,因为 promise 已经被处理并且实际上已经被返回。

.then已准备好使用,但 typescript 不会编译,因为它需要其他东西。

我想问题是:如何编写正确的类型来处理 redux-promise-middleware 操作,同时为 redux' connect-function 提供正确的调度类型mapDispatchToProps等。

0 投票
0 回答
388 浏览

reactjs - 在 Axios.post 和调度操作之后,无法在 Redux Thunk 中执行回调

我写了一个 redux thunk,以便在向 API 发出 post 请求后,会分派一个动作并执行一个回调:

当我调用 thunk 时的回调实际上只是一个this.props.history.push(/somelocation). 所以如上所述它有效,但我实际上希望回调位于 axios.post 承诺链中,因为重定向应该只发生在 POST 请求之后。但是,如果我将代码更改为:

不知何故,它不再起作用了。POST 请求正在发生并且数据库得到更新,但不是重定向同一页面而是硬重新加载,这使得调试也非常困难,因为我真的看不到发生了什么。有谁知道我需要照顾什么,是调度抛出错误还是我现在需要一个 redux promise 中间件?

0 投票
2 回答
4395 浏览

javascript - 我应该在调度时捕获 Redux 承诺错误还是只在减速器中处理它?

所以基本上我正在使用 thunk 和 redux-promise-middleware 调度一个动作,它会进行一个返回承诺的 API 调用。然后我将返回的承诺作为“有效负载”参数发送给另一个动作创建者,该参数与 redux-promise-middleware 一起使用并处理不同的动作 MY_ACTION_TYPE_PENDING 或 MY_ACTION_TYPE_REJECTED 或 MY_ACTION_TYPE_FULFILLED。我的问题是我是否通过 _REJECTED 操作处理减速器中的错误,而不是在我的 dispatch(actionCreator(payload) 上捕获它?当我没有在调度中捕获错误时,我会在控制台中收到警告,尽管我的减速器正在处理_REJECTED ACTION 出错了。

以下是我的一些操作:

然后这是我的一些博客减速器文件,它处理承诺中间件发出的动作

0 投票
2 回答
5738 浏览

javascript - 如何使用 Redux Promise 中间件链接操作?

我对 React 和 Redux 很陌生。我想使用redux-promise-middleware链接多个 API 调用,并按如下方式实现我的操作:

locationActions.js:

我使用以下方式从我的 React 组件调度此操作mapDispatchToProps

这行得通!但是,我想在visitLocation解决并完成后调度另一个动作。我不能调用Promise.then(),因为它不提供dispatch方法,因此不能将我的操作“绑定”到减速器。

教程提到我应该打电话dispatch(secondAction()),但我的动作创建者中没有可用的调度。

有人可以向我指出我错过了什么吗?

编辑:

正如第一个答案中所建议的,我尝试了以下方法:

但我得到了 action:undefined 和以下错误:

0 投票
1 回答
832 浏览

reactjs - 使用 Redux Promise 中间件和 JHipster 链接调度的操作

我正在构建一个 Jhipster React 生成的项目。我的问题是我无法链接减速器功能。

简单地说,我想将getSession()函数与身份验证减速器中的另一个函数链接起来。

在我的组件中,我想处理then()类似的操作getSession().then(....

你能帮忙吗?

这是authentication.ts减速器:

身份验证.ts

store.ts

家庭组件

在我的 Home 组件中,我想先调用 getSession,然后再调用 getList。如果响应正常,则拒绝它。从现在开始谢谢。

0 投票
1 回答
51 浏览

reactjs - 在 API 中访问想要的数据?

*抱歉,因为我之前发布了一个类似的问题,但由于这是一个结构更好的问题,所以将其删除。

你好!我想largeImageURL从 PixaBay API 定位到GridTile在我的 PhotoResults 容器中呈现。我已将 Redux 配置到应用程序中。this.props.photos当我在提交 a 后控制台日志时searchText,我收到一个长度为 20 的数组。我知道0:in0: Array(20)表示第一个索引位置,但我不知道这如何帮助我定位largeImageURL. 我如何定位largeImageURL到在GridTile? 非常感谢!

在此处输入图像描述

减速器

照片结果容器

0 投票
2 回答
263 浏览

reactjs - 如何创建一个更短的可以处理多种动作类型的 redux-promise-middleware reducer 函数?

我已经使用 redux-promise-middleware 和 react 和 redux 来构建一个具有多个按钮的应用程序(每个按钮都有自己独特的 ajax 请求,将相应地更新状态)

我开始为我正在制作的众多按钮中的三个制作 dataReducer。dataReducer 已经超过 100 行,为其余按钮制作这个 reducer 也非常繁琐。

有没有更有效的方法来创建这个 dataReducer 函数并缩短,同时确保 dataReducer 函数保持纯净

完整代码(此处为代码沙箱

0 投票
1 回答
300 浏览

react-redux - REDUX THUNK ASYNC AWAIT 返回一个 Promise 中间件

我有一个问题,我使用 redux thunk 作为我的 API 中间件,当它只更新 redux 状态时它工作正常。但是,我的代码的某些部分要求我从请求 API 获得响应,而不是等待它通过 redux 商店。我如何“承诺”这部分?

我用 axios 调用 api 的代码:

我的 redux thunk api 中间件:

我需要立即获取返回值的函数,getS3UploadUrl 将 getS3UploadUrl 调度到 api 中间件:

可能我需要一个 signedURL 的返回值作为 API 请求的响应

但是,signedURL 是未定义的。

0 投票
1 回答
531 浏览

javascript - 如何在 react-scripts v3 中使用 redux-promise-middleware

我最近在我的 React 应用程序中更新了我react-scripts的版本,我的所有操作都停止了工作。3.0.0

我正在使用redux-promise-middleware,所以在获取数据时我总是有这种模式:

商店.js

我通常在我的操作中执行多个请求链,如下所示:

更新后,我收到以下错误:

有人知道如何迁移我的操作,以便它们符合最新的依赖项吗?

编辑:我在我的反应组件中导入这个动作并从那里调用它:

firstAction(第二个动作类似):