问题标签 [redux-reducers]

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 投票
0 回答
54 浏览

reactjs - 反应减速器,状态不立即更新

我正在使用减速器createContextreducers我正在更新状态值,但它不是一次更新值,我这样做console.log(user);onSubmitSave(),但是在控制台日志中我一次没有得到它的更新状态,我可以看到它在我工作时工作再次点击登录,在这里我附上了我的整个代码,任何人都可以查看它,并帮助我解决这个问题吗?

auth.js

登录.js

应用程序.js

0 投票
1 回答
70 浏览

reactjs - 自定义 Redux 撤消 reducer 状态变量无法识别

为了实现自定义撤消/重做功能,我按照https://redux.js.org/recipes/implementing-undo-history中的说明进行了修改以适应我自己的减速器。现在,当我尝试运行代码时,我得到了过去、现在和未来未定义的错误。该错误不会出现在最初的情况下,而只会出现在ActionTypes.LAYOUT_SET_MOVES,ActionTypes.LAYOUT_UNDO_MOVESActionTypes.LAYOUT_REDO_MOVES情况下。

我已经搜索了代码并将状态变量与其他减速器进行了比较,但没有发现明显的原因。如果您能指出我正确的方向,我将不胜感激。

完整的减速器代码如下。

谢谢。

0 投票
3 回答
170 浏览

javascript - 将 dom 操作放在 redux reducer 中是个坏主意?

我有几个使用相同减速器的动作,而不是在每个动作中都有一个 dom 操作,我只想在我的共享减速器中添加一次。我知道减速器是纯粹的(返回的数据仍然是),但这是某种反模式还是可接受的策略?

0 投票
1 回答
52 浏览

react-native - Actions 接收信息,但 reducer 什么都不做?

我正在尝试将用户资源的实例发布到我的项目中。当我不得不等到我重新启动项目才能看到新实例时,我注意到状态没有更新。在我的项目中,用户和资源之间存在多对多关系,其中 user_resource 作为连接。

尽管该实例已发布在我的后端,但它不会显示在前端。我的 POST fetch 似乎接收了正确的数据,甚至采取了正确的操作,但随后无法更新减速器中的任何内容。我认为这可能与我如何为减速器设置特定案例有关,尽管我不知道我做错了什么。当我使用调试器时,它会触发动作,但不会触发减速器。我尝试为 user_resources 创建一个完全独立的减速器,但这也不起作用。

0 投票
1 回答
45 浏览

javascript - 做出反应。从另一个减速器获取状态

嗨,我怎样才能从另一个减速器获得价值?

Return userReducer.user_balance - 应该返回一个存储在另一个 reducer 中的值

它是我的userReducer代码:

0 投票
1 回答
913 浏览

reactjs - 简单的 React Redux 状态返回 undefined

我完全被这个难住了。我构建了最简单的 react redux 组件,目前仅显示商店中的计数器。然而,这个计数器总是以未定义的形式返回!

我希望计数器返回0,因为这是减速器中设置的!

我已经遵循了无数教程,但我无处可去!

如您所见,这是一个非常简单的设置。我希望计数器返回0,因为这是设置的初始状态counterReducer.js

但是我只是在前端得到“计数器未定义”!

0 投票
1 回答
62 浏览

reactjs - 如何访问我的 Redux cartReucer 中的状态?

应用截图

我需要访问我当前的购物车状态,它只是已添加到购物车的产品列表,以便我检查 id 以计算重复产品的数量。我意识到我的问题之一是我已经用一个空数组初始化了 itemsInCart 但我不确定这里还能做什么,因为没有它就无法解构状态。

cartReducer.js

产品.js

单击该按钮会调度“ADD_TO_CART”操作,将新产品添加到我们的购物车状态。

InCartList.js

在 CartContainer 中呈现我的购物车中的项目列表

0 投票
1 回答
78 浏览

reactjs - Redux combineReducers() 无法识别状态

我正在使用 redux combineReducers() 来组合 2 个减速器。虽然它们都在开发工具中被识别,但其中一个只是一个空对象,即使我将具有不同属性的对象传递给减速器。

combineReducers() 文件:

第一个减速器:

第二个减速器:

当我在 redux 开发工具中查看状态时,“auth”具有相关属性,但“job”只是一个空对象。我已经为减速器文件命名了不同的名称,以消除对别名的需求,但它没有任何效果。任何帮助表示赞赏。

0 投票
1 回答
261 浏览

reactjs - 如何在 reactjs 中创建自定义中间件来更新减速器?

当api发送带有更新令牌的响应时,我想更新reducer。我尝试从中间件调度操作,但减速器正在重置为其初始状态。

0 投票
1 回答
70 浏览

typescript - 在 combineReducers - Redux - Typescript 中按名称对 reducer 键进行排序

我有很多 redux reducer,它们在发送到 store 之前传递给 combineReducers。在 js 中,我通常会执行以下操作并对其进行排序。请注意,这里的减速器是虚拟的。

但是在打字稿中,如果我尝试做同样的事情,我实际上会遇到很多错误。

错误是

TS2345:“{}”类型的参数不可分配给“ReducersMapObject<RootState, PayloadAction<"@user/setCurrentUser", ADUser> 类型的参数 | PayloadAction<"@profile/setProfile", Profile> | PayloadAction<"@client/setClients", ClientMap> | ... 81 更多... | 有效载荷动作<...>>'。类型“{}”缺少类型“ReducersMapObject<RootState, PayloadAction<"@user/setCurrentUser", ADUser> 中的以下属性 | PayloadAction<"@profile/setProfile", Profile> | PayloadAction<"@client/setClients", ClientMap> | ... 81 更多... | PayloadAction<...>>':currentUser、profile、clients、models 和其他 22 个。

请指教。