问题标签 [redux-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 投票
3 回答
4989 浏览

reactjs - 没有使用 react 和 redux 在我的函数上定义调度

我正在尝试使用react-redux-loading-bar在从 API 服务器获取数据期间显示加载栏,我不使用 promise 中间件所以我决定不使用它,示例说这样做

它给了我这个。

我与其他图书馆有类似的问题并放弃了那个时间,这次我想真正了解它是如何工作的,因此非常感谢任何信息。这是导致错误的代码,特定的函数和类名被剥离。

0 投票
1 回答
496 浏览

redux - Redux 的 applyMiddleware 的实现

我的问题是为什么middlewareAPI不能使用:

替换源代码中的定义如下:

谁能告诉我区别?谢谢。

0 投票
0 回答
372 浏览

redux - 为什么我应该使用 Redux-Thunk 而不是自定义中间件?

我有以下中间件。 在此处输入图像描述 这个中间件的作用类似于 redux-thunk 中间件,但是将 dispatcher 和 state getter 传递给了 action creator 函数,而且我还传递了下一个可以调用的中间件。在这种情况下,我可以像这样导出所有中间件 在此处输入图像描述

所以在我的动作创建器中,我没有调度动作,而是将它传递给下一个中间件。 在此处输入图像描述

我只是想知道为什么我应该使用 redux-thunk 而不是这个简单的 customThunk 中间件?

0 投票
1 回答
707 浏览

javascript - Redux 中间件异步函数

我有一个与 rest api 交互的 redux 中间件。我最近开始使用 async/await 重写一些 fetch 函数。

为了这对我来说最有意义,我需要中间件函数本身是一个异步函数,这样我就可以在我创建的其他异步函数上使用“等待”和 try/catch 块,而不是必须使用 .然后,.catch。

到目前为止,我有这个:

请注意在“action”之前使用async关键字。到目前为止,这似乎按预期工作,我可以等待该中间件的其他异步功能。但是,由于我无法找到这方面的文档,我想知道我所做的是否真的有效。

谢谢

0 投票
2 回答
8371 浏览

redux - redux 刷新令牌中间件

我有一个中间件,可以在下一个操作运行之前转到刷新令牌,然后在访问令牌过期时运行另一个操作。

但是,如果我一次发出多个请求并且访问令牌结束,我将尝试获取与我请求一样多的刷新令牌。我正在检查状态中的 isLoading 属性以防止这种情况发生。但是请求之后,reducer中的isLoading值是true,中间件好像是false,所以反复请求。

我在 fetching_refresh_token 操作中发送 refreshTokenPromise,但我从未得到 state.refreshTokenPromise,它始终未定义。

我肯定对国家有问题。

所以这是我的问题,如何访问中间件中不断变化的状态值?

刷新令牌中间件:(此版本多次命中端点)

刷新令牌缩减器:

同时,当我将它发送到 getState 到 refreshToken 函数时,我得到了 refreshToken 中不断变化的状态值。但是在这个版本中,刷新令牌会在没有被刷新的情况下进行其他操作。

Monkey Patched 版本:(此版本仅提出 1 个请求)

谢谢你。

0 投票
2 回答
402 浏览

javascript - Redux 中间件和接受所有操作的 reducer 之间的区别

在我的 redux 项目中,我想在每个动作调度中检查一些东西(例如网络连接)。我是否应该使用一个接受所有类型的动作(没有类型检查)的减速器来实现,如下所示

或使用中间件。

这两种实现有什么区别

0 投票
1 回答
44 浏览

javascript - redux中间件函数级联应该这么复杂吗?

要在 redux 中定义中间件,我们需要编写一系列函数,例如:

问题是这个签名是否是:

  • 由任何必需品强加/打开任何机会;
  • 只是 Redux 实现细节的含义/开发人员可以舒适地操作一系列(next)-argumented 函数,如这里

是否可以将其替换为以下签名(当然要对 Redux 的代码进行相应的更改):

我意识到结果并不完全等同于前一个,但似乎对applyMiddleware案件没有任何影响。这种语法的好处是不太容易混淆 IMO。

0 投票
1 回答
228 浏览

angular - Redux 只维护共享数据

在我们的 Angular 应用程序中,我们计划使用 Redux,但决定只使用它来管理至少由两个组件共享的数据。仅一个组件使用的数据将直接获取,无需使用 Redux。例如,假设一个组件必须显示一个值列表并且这些值不与任何其他组件共享,那么我们将使用服务获取这个列表。但是在获取这些数据时,它可能会影响存储中的一些其他状态,例如它可能会调度一些动作,如 NETWORK_REQUEST_SENT、NETWORK_REQUEST_COMPLETED,以便微调器/覆盖组件可以更改其显示。

现在的问题是代码的哪一部分应该负责调度这些操作。

  • 场景 1:从服务中获取数据的容器组件可以调度这些操作,但我认为它不属于这里。
  • 场景 2:发起 HTTP 调用的服务可以调度这些操作,这意味着服务必须订阅 HTTP 可观察对象并为组件返回自己的可观察对象。
  • 场景 3:可以在 Redux 中间件中完成,但是我们必须调度一个操作来获取值列表,这意味着值列表必须存储在存储中,这是我们不想要的。
  • 场景 4:正如这里提到的,我们可以创建一个抽象层,但感觉就像不需要中间件一样。
0 投票
1 回答
414 浏览

reactjs - axios-redux-middleware 请求上的回调不会触发

有人可以向我解释为什么在动作创建者上定义的回调不会触发吗?

有问题的代码可以在这里看到。

这个插件好用吗?(它似乎被放弃了。)我应该如何处理中型应用程序中的 API 调用?

提前致谢。

0 投票
3 回答
65 浏览

reactjs - 使用 redux 可观察中间件存储 defaultstate

我正在制作一个可观察到的 redux 史诗作为中间件,并且还想提供一个默认状态来存储。在某些地方,我看到 applyMiddleware 作为 createStore 函数的第三个参数,而在某些地方它是第二个参数。我怎样才能做到这一点?

我正在尝试这个

我的主要应用看起来像这样

但这不是设置默认状态。