问题标签 [redux-thunk]

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 投票
2 回答
35577 浏览

reactjs - React-Redux:组合化简器:意外键

在我开始组合我的 Redux 减速器之前,我的应用程序运行良好。但是当我组合时,initialState 和 reducer 键会混淆。

这会导致功能中断和控制台错误

Unexpected keys "one", "two" found in initialState argument passed to createStore. Expected to find one of the known reducer keys instead: "events", "flash". Unexpected keys will be ignored.

我的初始状态是在 redux-thunk 的帮助下传入的。

如何正确组合减速器?

0 投票
1 回答
460 浏览

reactjs - 在 Redux-Thunk 中使用 fetch-api 奇怪地刷新了标头

嗨,我刚刚遇到一个我不完全理解的问题。

我的 API 在每次请求时都会向我的客户提供一个新的 Auth-Token,以便在下一个请求时使用并再次获得一个新的。但是有一点点扭曲:在短时间内(几秒钟内)发送的请求将被视为批处理,并且所有这些请求可以并且必须使用相同的 Token,因为 API 不会为这些请求提供新的 Token .

奇怪的是所有批处理请求响应都不包含新令牌,但我的客户端应用程序仍然以某种方式管理以使用旧令牌和过期令牌刷新它的状态......

这就是我所做的:在每个成功的请求中,我都会发送一个“REFRESH-TOKEN”操作,该操作从响应标头中获取新信息,如下所示:

response来自 fetch-api,在我看来,当标头不存在时,它会给我过期的响应。

非常感谢谁能向我解释发生了什么。现在我不满意的解决方案是关闭批处理请求功能。

0 投票
3 回答
6175 浏览

javascript - 测试调用 API 的 redux 操作

测试此功能的最佳方法是什么

这就是我目前所拥有的

0 投票
1 回答
3145 浏览

javascript - 如何在等待 redux 解决时禁用按钮?

在以下示例中,如何在地理定位请求期间禁用该按钮?在初始化时未设置 this.props.inProgress ,我想在请求 getCurrentPosition 时禁用按钮并在 RECEIVE_LOCATION 解决时启用。什么是正确的做法?我是否要使用状态并将道具复制到 GeoButton?

0 投票
1 回答
234 浏览

javascript - 同构 Redux 应用程序未注册 Redux-Thunk?

我似乎有一个奇怪的错误。我目前以同构方式使用 Redux,并且还包括redux-thunk作为异步操作的中间件。这是我的商店配置的样子:

奇怪的是,我认为这个文件没有任何问题,因为我createLogger的应用很好。它会注销我所有的动作和状态,但是当我在动作创建者中返回一个函数而不是一个对象时,执行就会丢失。我尝试过debugger添加语句,这些语句从未命中和重新排序中间件似乎也无济于事。

有没有人经历过这样的事情?

0 投票
0 回答
200 浏览

reactjs - 设计明显的多级嵌套动作并将它们批处理

我的应用程序的一部分的设置是这样的:

设备从一个或多个数据源获取数据。用户与一个或多个设备交互。现在,dataSources 提供实时数据,这些数据会定期按设备获取,然后显示。所以结构可以显示为:

请注意,数据源可能会重叠。所以它是一个两层的重叠设计。

目前,操作设置如下(代码在语法上不是 100% 正确 - 只是一个设计问题):

那么,这是一个体面的设计吗?我强烈觉得我在这里错过了一些功能。给定场景,动作嵌套是最好的方式吗?这里可以进行任何其他改进吗?

更新:我在这里面临的一个问题是fetchDataSourceRealtimefetchApplianceRealtime.

现在我有一种感觉,我只是从错误的角度看待这个问题。

0 投票
3 回答
1303 浏览

reactjs - Redux - 为什么在根目录下加载所有状态

我试图理解 Redux 并遇到了一些困难。

我理解 combineReducer 的概念,即....

但是,如果我有数千种产品,只能在产品页面上找到。我不明白为什么我需要在根目录下加载它们;对我来说,这会减慢应用程序的初始启动速度,因为除非用户转到产品页面,否则不需要这些东西。

这就是redux的方式吗?

0 投票
1 回答
1153 浏览

redux - 如何接近 Redux + 微服务互通

我们正在实施一个拍卖云服务,它将根据需要从外部 API 服务接收订单。每个收到的订单都是1:1 的拍卖

我们每天可以有超过2000 个订单(拍卖) 。我们决定使用微服务 + Redux来分离订单和拍卖之间的关注点。

下面是每个服务的解释。

外部 API

Enternal API 只是一个将订单推送到我们的订单服务并从我们的订单服务接收更新的网站,我们无法控制它。

订购服务

Orders 有一堆信息(属性),客户端(移动应用程序)使用这些信息(属性)来获取信息以决定加入拍卖。例如,订单如下所示:

在订单服务中,服务器可以在拍卖开始之前的任何时间通过以下操作更新订单(地址、名称、openPrice、minPrice、状态等)。

拍卖服务

此服务中的拍卖对象可能如下所示:

可以通过以下操作更新拍卖:

API服务

它就像前端应用程序和微服务之间的网关一样工作。以操作的形式接收来自客户端(手机)的请求并将其发送到Order ServiceAuction Service

工作流程:

1 -外部 API通过 LOAD_ORDERS将当天的订单推送到订单服务,还将 CREATE_AUCTIONS 操作分派到操作服务以为每个订单创建拍卖。

2 - 用户打开移动应用程序并获取当天的订单列表,其中包括订单服务的开盘价等详细信息。

3 - 用户加入特定订单 - API 服务创建一个投标代理来进行投标。- API 服务通过 JOIN_AUCTION 发送加入操作以加入拍卖服务上的拍卖

4 -拍卖代理开始拍卖并开始投标。

5 - 加入的投标人代理开始通过拍卖服务上的 PLACE_BID 操作进行投标。

6 - 当拍卖结束时,拍卖代理通过发送 END_AUCTION 结束拍卖。

7 - 当拍卖结束时,销售价格和拍卖细节(通过对象)通过 SET_ORDER_AUCTION发送到订单服务。

8 -订单服务处理 SET_ORDER_AUCTION 并使用最终的salePrice拍卖对象更新订单状态,然后等待付款。

9 - 一旦从客户那里收到付款信息,然后通过订单服务提交给外部服务

我的问题是:

  • 上面的工作流程是使用 Microservices + Redux 并更新每个服务状态的合理方法吗?

  • 使用 redux 微服务时,可以将操作从微服务分派到另一个微服务吗?我的问题是因为在使用微服务 + 事件溯源 + CQRS 时,不建议使用服务互通,而是使用 Sagas 作为将事件转换为命令的中间服务。

  • 我的另一个问题是在哪里放置业务逻辑(验证),例如,如果拍卖未开始或已经结束,则投标人无法发送投标,如果他/她尚未加入拍卖,则投标人无法发送投标。有人把这个逻辑?在行动中,中间件还是减速器?以及如何处理返回给客户的错误?

  • 一般来说,微服务 + Redux 有哪些最佳实践?

  • 使用微服务+ Redux微服务 + 事件溯源 + CQRS的优缺点是什么?

很抱歉这篇长文,我只是需要一些指导,因为我找不到关于这个主题的任何文档,我不确定我是否接近这个正确的。

任何意见,将不胜感激!!!

0 投票
2 回答
2180 浏览

reactjs - Redux 和 React-Router:动态路由器不工作

这在 Alt.js 上运行良好,然后我切换到了 redux。我真的很难把头绕在 redux 上。

错误:不变违规:对象作为 React 子项无效(发现:对象与键 {id, doc...}

在此处输入图像描述

我在用 :

谁能看到为什么我收到错误并且没有显示任何组件?





我知道很多代码,但是数据显示出来了,这确实是 this.fetchRoutes() 中的 { result } 给我带来了问题。没有它的工作,但当然有 95% 的路线。

0 投票
1 回答
349 浏览

javascript - 使用 react-router,redux 将无法工作

我读过很多类似的问题,没有一个适合我。

关于

this.props.children 并不总是从其父级继承上下文

在上下文或道具中找不到“商店”

索引文件,所有路由都嵌套在 Provider 中。

组件。我记录了this.props,没有dispatch属性。而上下文的参数是一个空对象。

也许,这是一个简单的问题,但花了我很多时间。希望能得到你的帮助。谢谢!