问题标签 [reselect]
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.
javascript - React reselect - toJS 不是一个函数
将 toJS 与重新选择库一起使用时,我在反应应用程序的选择器中遇到错误。我尝试导入toJS
和不导入它,无论如何我都会收到错误消息。
nodeCreationWindow.get(...).toJS 不是函数
angular - ngrx/store 选择器返回函数而不是对象
我正在关注示例应用程序(https://github.com/ngrx/example-app),我所有的商店、效果、动作都运行良好,但是在使用 reducer 文件中定义的选择器与定义的选择器时,我的行为很奇怪在容器文件中。reducer 文件中定义的选择器返回函数,而容器文件中定义的选择器返回对象。我复制了代码片段来详细解释这一点。我想定义共享选择器,因此它易于维护和升级,而不是每次都在容器组件中定义。如果有人阐明解决此问题,我将不胜感激。
//package.json
//space.reducer.ts //空间接口和reducer
//application.reducer.ts //组合状态接口和reducer
//spaces.container.ts //容器组件
//容器输出
reactjs - 如何使用react redux单独连接数组的每个元素
当前的方法是将整个书单连接到书单组件中。但是,仅通过更改状态中的几个字段来渲染巨大的组件效率不高。我不知道如何将每个图书组件映射到每个单独的图书状态。
该项目正在使用redux。像这样的应用程序全局状态
在 Book List 组件中,我们使用 react redux 将 list 与它连接起来
现在需求变了,书里的字段不会经常变了。问题是,如果更改了一个字段,它将更新整个 BookListComponent。这不是我期望的高性能组件。
我想将连接逻辑下推到单个图书组件,以便使用重新选择
该州没有这本书的索引,我不知道如何编写连接以使其工作
感谢您的提前,欢迎所有选择
javascript - 当我从 mapstatetoprops 调用 Redux Selector 时,它没有触发
现在我在 react-redux 工作。我正在尝试逐一从州获得问题。生成的唯一ID存储状态中的问题,用户提交后,答案也与问题一起存储。
Uniqueid:{问题:问题在这里,答案:''}
反应组件来呈现问题。我在 mapstatetoprops 中使用选择器从状态中选择问题。
现在是我的问题:选择器第一次完美触发。用户提交问题后,答案也会更新。之后,选择器没有触发,我找不到为什么?
javascript - Ngrx 所有重新选择选择器都在单个状态切片更改时运行
在组件中,我运行了以下两个选择器
问题是每次App.ActionTypes.ADD_VALUE
调用操作只更新values
然后选择器getSearchValues
(for values
) 和getSearchNumbers
(for numbers
) 都被调用。(如果您放入一个调试点//<<DEBUG 1>>
,//<<DEBUG 2>>
两者都将达到)。
是否可以只运行与更改的切片相关的选择器而不是所有选择器,就好像每次对单个部分进行更改时每个选择器都会运行 40 个选择器。
react-redux - ngrx reselect Selector createSelector 加载顺序(循环)依赖
createSelector
当我使用在文件 A 中定义的文件在文件 B 中执行时,我遇到了几次以下错误Selector
......显然文件 A 中的Selector
定义没有被实例化,我得到一个undefined
参考错误......
由于我遇到过几次这种情况,我的想法是其他人也会遇到类似的问题,但是搜索 stackoverflow 和互联网并没有产生任何有意义的东西......这让我相信我还有另一个根本的误解...... .
归档 A 状态(商店/帐户)
文件 A 选择器(商店/帐户)
文件 B 状态(存储/报告)
文件 B 选择器(存储/报告)
reportStore.reportIdSelector
(在显示的最后一行)文件 A 被标记为undefined
用于createSelector
实例化reportAccountsSelector
过去,我在商店中的“根”对象之间移动或复制了状态片段,但这不是 DRY --- 那么,为什么我的方法失败了,是否有更好(正确)的方法来处理情况我想从应用商店的其他部分访问状态?
automated-tests - 为什么对选择器(重新选择库)的测试会失败?
根据问题的标题。
.../选择器.js
.../tests/selectors.test.js
console.log ... 打印:
因此为什么,但我不明白为什么其他用户为字符串的选择器(例如)正常工作,并且选择器按应有的方式返回字符串。
奇怪的是,选择器实际上表现正确,但测试没有。
reactjs - 链接redux状态更改的惯用方式?
我试图找出解决这个问题的惯用方法:
我有一个包含“应用过滤器”列表和“记录”列表的化简器。当我更改过滤器或记录时,“过滤记录”列表也应该更改,但是将过滤器应用于可能很长的记录列表可能会很慢。
现在,我正在发送“添加过滤器”或“删除过滤器”操作来更改“应用过滤器”列表。这导致重新计算“过滤记录”列表(当前在 reducer 中完成)。
我正在使用两个容器组件,一个显示“过滤芯片”列表,另一个显示“过滤记录”列表。
因为应用过滤器需要一段时间,并且每次过滤器更改时都会完成,所以从 UI 中删除过滤器的过程似乎很滞后——我单击删除过滤器,并且删除的过滤器不会消失,直到 reducer 完成所有它的工作,包括更新过滤器列表和应用新的过滤器列表。
我宁愿拥有的是:
- 删除过滤器,它会尽快从 UI 中消失。(即,广播状态更改仅包含已删除的过滤器)
- 同时,我希望应用过滤器的过程发生在后台,一旦完成,调度另一个操作来更改过滤记录列表。
- 在应用过滤器并触发更新过滤记录的操作后,我希望更新“过滤记录列表”组件。
因此,基本上我希望状态更改可能触发另一个状态更改,但我想在这两个状态更改之间广播中间状态。
我知道我必须从我的减速器中取出庞大的逻辑并投入到一个动作中,但我正在为应该如何/在哪里应用该逻辑而苦苦挣扎。我有一种唠叨的感觉,我已经把我的大脑缠绕在它的轴上,我现在把事情复杂化了,但我似乎无法回到简单/正确的方法。
任何帮助将不胜感激!
编辑,来自我添加的评论,但也想在这里保持内联:
我在最初的问题中说错了,在这里进行了很大的更正-
我实际上并没有计算减速器中的“过滤记录列表”——我的“RecordList”容器上有一个重新选择选择器,它接收“记录”和“过滤器”并返回过滤记录的列表。
我认为这更多是因为“RecordList”渲染阻止了“FilterList”渲染,所以我要向上组件层次结构,看看我是否可以在那里修复一些东西。
不过,我仍然愿意提出任何建议!