问题标签 [easy-peasy]

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

javascript - 未处理的拒绝 (TypeError):在已撤销的代理上尝试非法操作

我正在使用easy-peasy(基于redux的状态管理),但我不知道为什么在下面的代码中调用useEffect中的操作方法时会出现此错误: 未处理的拒绝(TypeError):尝试非法操作被撤销的代理

当我在安慰物品时,它会返回给我: Proxy { : null , : null }

这是我的集合模型定义

请有人指出我做错了什么。

0 投票
3 回答
982 浏览

javascript - redux 是否会在对 store 的任何更新时评估 store 的所有侦听器?

据我所知,当 store 中的任何内容发生变化时,redux 将通知 store 的所有订阅者,无论是对深度嵌套的叶子的订阅还是对状态顶层的订阅。

在遵循指导原则的应用程序中:

许多单独的组件应该连接到商店,而不是只有几个...... [文档]

您最终可能会遇到很多听众和潜在的性能问题?

免责声明:我了解,如果选择器功能的结果发生变化,选择器功能只会导致重新渲染。我知道仅仅因为评估了侦听器函数,并不意味着订阅组件将重新呈现。我知道评估选择器功能对于反应组件渲染来说相对便宜。

但是,我只想确认这确实是 redux 的工作原理?

例如,给出以下示例监听器

如果我们沿其他路径更新其他值,与上述侦听器无关,例如

据我了解,将调用所有侦听器,包括上面的示例。

对于上下文,我的实际用例是我使用的是基于 redux 的https://easy-peasy.now.sh/ 。需要明确的是,我目前在生产中没有任何与绑定太多侦听器相关的性能问题。但是,每次我通过useStoreState钩子附加一个侦听器时,我都想知道是否应该最小化将另一个侦听器绑定到商店。

另外,如果你很好奇,受这种想法的启发,我实现了一个状态树,它只通知相关的 listeners

也许这对于状态库来说是一个过早的优化......但如果是这样,为什么?是否假设使用 redux 的应用程序将具有简单快速的选择器,并且应用程序瓶颈将在其他地方?

0 投票
2 回答
165 浏览

reactjs - useEffect() 导致重新渲染和对 api 的多个请求

问题

功能组件会导致多次重新渲染,从而导致多次 ajax 请求。解决方案是什么?

这是我的代码。

0 投票
1 回答
115 浏览

javascript - 使用简单的 peasy 反应商店问题,意外的渲染会弄乱商店中的模型

当我调用一个动作时,第一次加载数据非常好。组件再次重​​新渲染并弄乱了状态。

默认状态

工作状态

意外渲染后

我的代码

0 投票
1 回答
616 浏览

javascript - 从单个组件访问多个 easy-peasy 商店

我试图在一个组件中访问 2 个不同的商店,但担心我的应用程序的架构可能需要更改,因为easy-peasy可能没有此功能。

我有一个GlobalStore

仅对于此示例,我将使用商店中使用的单个状态和操作来定义导航菜单是否打开。

App.jsGlobalStore 出现在我的文件中我的应用程序的顶层。

现在,在树的更下方,我有另一个商店SearchStore,它指示组件中哪个视图处于活动状态。

我现在遇到的问题是,在一个组件中,我需要能够访问两个商店以使用中的setView操作更新视图并从其中SearchStore获取值,但不能同时访问两者。menuOpenGlobalStore

我在一个组件中的示例是我有一个样式化的组件,单击该组件时会调用该操作setView,但其位置也由是否menuOpen定义true。但显然,如果我尝试获取menuOpen它的状态将是未定义的,因为它不存在于 SearchStore

这可能吗?任何帮助将非常感激。

0 投票
1 回答
49 浏览

javascript - 从另一个动作调用动作

我有一个子商店

我创建了 3 个操作来重置上面显示的各个属性:

我想创建另一个动作,reset或者resetAll在内部将上述 3 个动作称为:

但我收到错误,因为找不到这些方法。那么有没有办法可以在重置操作中调用 3 个操作?

我也知道,我可以如下所示编写我的重置,但我很喜欢使用上述方法的解决方案

0 投票
2 回答
92 浏览

redux - 如何从不同模型引用的模型中删除记录?

我有两个模型,其中模型 A 引用模型 B 中的项目。当我从模型 B 中删除项目时,在我可以更新模型 A 以删除引用的项目之前做出反应重新渲染。

例子:

我有一个饲料。提要由不同类型的项目组成。每种类型的项目都存储在其各自的模型中。提要订单存储为项目 ID 数组,引用其不同子商店中的项目。

我在这里做了一个最小的失败示例。点击按钮三次后出现此问题

https://codesandbox.io/s/deleting-referenced-items-kmw1e

关键线是

提要订单可能包含已删除的项目是有问题的,因为这可能意味着存在导致错误引用的编程错误。在这种情况下,这不是编程错误,只是第二个商店还没有更新。

有没有办法可以批量处理createAndDeleteTodo, 在整个 thunk 和所有 subthunk 完成之前不评估所有听众?

在上面的示例中,只需一个主操作来更新提要订单和项目就足够微不足道了,但是如果存在不止一种类型的项目,因为每种项目类型都存在于它自己的各自模型中,这会让人觉得很麻烦。

0 投票
1 回答
195 浏览

javascript - Easy-Peasy 访问其他型号

easy-peasy用作反应应用程序的状态管理器在我需要访问另一个模型的actionOn状态时,我如何访问?todos.itemsnotes.onAddNote

0 投票
2 回答
153 浏览

javascript - 反应只听第一个状态变化

我正在使用 useEffect 来响应收听 redux(easy-peasy) 状态更改,但我只想收听第一个值更改。
因为当我的页面加载时,状态具有默认值,然后进行 API 调用,因此数据发生更改,但 API 是轮询 API,因此它会在很短的时间间隔内一次又一次地获取数据。但我的要求之一是只收听第一个 API 数据。

这是我尝试过的:

空依赖的第一种方法

在这种情况下,我得到了我的状态的默认值,而不是第一个 API 响应。

依赖项中具有状态属性的第二种方法

在这种情况下,我不断从 API 获得更新的响应

这两种方法都不适合我。所以请提出一个更好的解决方案。

0 投票
1 回答
293 浏览

reactjs - 无法使用 'useStoreState 在 react easy-peasy 中访问状态

我最近决定使用 easy-peasy学习状态管理,并按照基本教程进行操作,但我似乎无法访问状态。这是应用程序组件:-

这是模型文件'model.js'

这是 Todo 文件:-