在 ngrx 上创建非记忆选择器

2024-04-24

是否可以在 ngrx 上创建非记忆选择器?

我有一个非常小的选择器来检查存储中的值是否大于 Date.now()。

export const selectAuthState = createFeatureSelector<AuthState>('auth');
export const hasTimeout = createSelector(
  selectAuthState,
  state => state.timeout < Date.now()
);

正如预期的那样,这个选择器没有用,因为除非我更改它的值,否则它不会被重新计算timeout。有没有办法使选择器不被记忆,以便每次访问其值时都会重新计算?

我当前的解决方案是创建一个选择器工厂并每次都使用它,但我认为这不是最好的解决方案:

export const hasTimeoutFactory = () => createSelector(
  selectAuthStatusState,
  state => state.timeout < Date.now()
);

另一种解决方案是做类似的事情

export const didTimeout = pipe(
  select(getTimeout), // using memoized value
  map(val => val < Date.now())
);

然后导入这个管道。


选择器有一个release重置记忆的方法,我想这就是你想要使用的。

这翻译成以下代码:

this.timeout = this.store.pipe(select(hasTimeout));
hasTimeout.release();

Docs https://github.com/ngrx/platform/blob/master/docs/store/selectors.md#reset-memoized-selector

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ngrx 上创建非记忆选择器 的相关文章

  • 检测未使用的方法 - Visual Studio Code

    有没有办法在 Visual Studio Code 中检测打字稿文件 Angular 中未使用的方法 我尝试了几个 Angular 插件 但没有成功 Web Storm 默认情况下会将未使用的方法灰显 在 VS Code 中寻找类似的东西
  • Angular - 如何过滤 ngFor 到特定对象属性数据

    我在内存数据 service ts 中有这些数据 import InMemoryDbService from angular in memory web api export class InMemoryDataService implem
  • Ionic 4无法导入自定义组件不是已知元素

    我是 Ionic 新手 我想创建一个带有可扩展项目的自定义列表视图 如下链接 https www joshmorony com creating an accordion list in ionic https www joshmorony
  • Firestore:如何重新订购我已经参考过的集合?

    有没有办法保留同一集合的引用 但使用 firestore 更改顺序 TLDR 这就像我想要实现的功能 https stackoverflow com a 17320018 https stackoverflow com a 17320018
  • Angular 4 - 请在您的应用程序中包含“BrowserAnimationsModule”或“NoopAnimationsModule”

    当我在浏览器上启动 Angular 应用程序时遇到问题 一切都可以用代码说话 但我仍然收到此错误 发现合成性质 routerAnimations 请包括其中之一BrowserAnimationsModule or NoopAnimation
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • Angular子路由和404

    查找不存在链接的路线不允许您浏览子链接 应用程序路由 module ts import NgModule from angular core import Routes RouterModule from angular router im
  • 如何将 JSON 响应映射到 Angular 4 中的模型

    我已经尝试了很多 但无法将端点响应映射到我的模型 我正在使用 HttpClient 和 Angular4 我从服务中获取了数据 但它没有正确映射到我的模型类 我有以下 JSON 服务正在返回 result id 1 type User co
  • 离子和电容器 - Android 启动画面响应能力

    Context 这与闪屏图像响应能力有关 根据我的研究 它之所以发生是因为缺少文档电容器文档 启动画面 https capacitorjs com docs apis splash screen Problem 当实现电容器的闪屏插件时 问
  • HttpParams 在 Angular 中不起作用,出现 502 错误

    我用的是角度8 我在用HttpParams通过以下方式将数据发送到服务器Post method 我正进入 状态502状态码错误 通过HttpPrams发送数据 ERROR HttpErrorResponse 标头 HttpHeaders 状
  • Jasmine.js 测试 - 监视 window.navigator.userAgent

    我需要找到改变的方法userAgent价值 我尝试过了spyOn the window navigator userAgent 但这没有帮助 JS Injectable export class DetectBrowserService b
  • 如何在 Angular 6 中过滤复杂结构化的 Json 数据

    我有一个复杂的结构化 json 数据 需要在我的 Angular 6 应用程序中应用高级过滤 JSON 数据 StudentId 1 StudentName Student1 Sex M Programs StudentId 1 Progr
  • 如何在 Angular i18n 路由器模块中使用 LOCALE_ID

    我正在使用 Angular 的 i18n 设置构建一个小型 Angular 应用程序 除了 url 路径和 slugs 的翻译之外 一切都工作正常 我尝试了一种可能的解决方案 为每种语言提供一个路由模块 如此处所述 但这不起作用 我以为我可
  • 模糊不起作用 - Angular 2

    我试图在角度 2 中设置一个蓝色事件 如下所示 div class form group 组件 ts import Component ViewChild ElementRef Output EventEmitter from angula
  • Angular 5 webpack 3 aot

    我正在尝试使用 webpack 3 和 Angular 5 进行 aot 构建 但是网上有很多教程 没有一个没有问题地显示完整的示例 到目前为止我已经有了以下配置 对于那些对路径有疑问的人 我在 java 应用程序中使用它 webpack
  • 如何在 PrimeNG 的 FileUpload 组件中中止文件上传?

    一 总结 基于PrimeNG中选择的文件文件上传组件 https www primefaces org primeng fileupload 我想中止特定文件名模式的文件上传到后端服务器 角度 6 0 7 PrimeNG 6 0 2 2 第
  • 如何在 Angular 2 中封装动态添加的元素?

    尝试让 MDL 与 Angular2 一起工作 通过 Shadow DOM 模拟 Angular 封装了从代码中获得的所有 CSS 和 html 但是当我使用componentHandler upgradeElement 它创建没有封装的新
  • 新的 Angular 项目不包含 e2e 文件夹

    我的系统上已经安装了 Angular 并且大约 7 8 个月前曾短暂使用过它 不久前 我创建了一个新的 Angular 项目 ng new testproject 奇怪的是 e2e 文件夹没有创建 我尝试卸载 CLI 清除缓存并重新安装 A
  • 当字段未触及时,角度反应形式返回空值

    在我的用例中 当用户单击编辑按钮时 Angular 会对后端进行 HTTP 调用并检索对象 然后在编辑表单上填充这些值 用户可以更新或保持字段不变 点击时update按钮 Angular 应该获取表单中存在的所有这些值并将它们发送到后端 因
  • Typescript / Angular 2:类型中缺少属性

    我对 Typescript 还很陌生 并且很难理解界面 据我了解 接口是类型描述或类的契约 它允许我定义类可以具有哪些属性以及它们的类型 我尝试实现这一点 但总是收到此错误 error TS2420 Class ResultPage inc

随机推荐

  • 与 C++ 中的对象数组混淆

    所以我首先学习了Java 现在我正在尝试转向C 我在让数组正常工作方面遇到了一些困难 现在我只是想创建一个对象 Player 的数组并用一个对象填充它 但我收到错误 Player players new Player 1 players 0
  • Pydub 按样本切片音频片段

    假设我有两个采样率相同的音频片段 它们是从 Pydub 中的 wav 文件导入的 并且假设我知道哪个更短 现在假设我想将较长的音频文件分成两个片段 以便第一个片段与较短的音频文件具有完全相同的长度 精确到相同的样本数量 并将这两个片段中的每
  • 在离散 ggplot x 轴两侧添加不同数量的额外空间

    我有一个带有离散 x 轴的图 我想调整刻度两侧的额外空间 使其左侧较小 右侧较大 以便长标签适合 scale x discrete expand c 0 1 不是我的朋友 因为它总是同时在双方工作 这个问题 https stackoverf
  • 提取 HTML 表单的字段名称 - Python

    假设有一个链接 http www someHTMLPageWithTwoForms com 它基本上是一个具有两种表单 例如表单 1 和表单 2 的 HTML 页面 我有这样的代码 import httplib2 from Beautifu
  • 解析回调未定义 - 简单的 Webscraper (Scrapy) 仍未运行

    我google了半天还是没能搞定 也许你有一些见解 我尝试不是从终端而是从脚本启动我的抓取工具 这在没有规则的情况下运行良好 只需产生正常的解析函数即可 一旦我使用规则并将 callback parse 更改为 callback parse
  • 无法使 PHP PDT xDebug 在 Eclipse 中的断点处停止

    通过选择 在第一行中断 调试器会在输入每个文件时激活 从而允许我单步进入和退出代码 但是 必须通过 50 万步才能到达开始变得有趣的地步 这有点麻烦 我的设置是 WIMP Window 7 PHP 5 3 xDebug config zen
  • VotingClassifier:不同的功能集

    在我的例子中 我有两个不同的功能集 因此 行数相同且标签相同 DataFrames df1 A B C 1 4 2 1 4 8 2 1 1 2 3 0 3 2 5 df2 E F 6 1 1 3 8 1 2 8 5 2 labels lab
  • Azure DevOps 构建变量 Build.Reason 是否可以在 YAML 模板编译时条件中使用?

    我想要这样的东西 if or eq parameters RunTestsOnPRBuildOnly false eq variables Build Reason PullRequest template ps module run te
  • F# 中的组总计 - 使用序列很容易,可以使用列表吗?

    给定一组 id value 元组序列 很容易计算组总数 与使用 C 和 LINQ 执行此操作的方式几乎相同 let items g1 5 g2 10 g1 20 let groupsums items gt Seq groupBy fun
  • Android 中的 GZIP

    我只是想问一下在Android 中使用HttpClient 发送gzip 进行post 请求 在哪里获取要在 GZIPOutputstream 中传递的 OutputStream 有片段吗 您好 UseHttpUriRequest 如下所示
  • 如何正确区分树(即嵌套的字符串列表)?

    我正在使用由嵌套字符串列表组成的数据类型的在线编辑器 请注意 如果每次更改单个值时我都要传输整个结构 那么流量可能会变得难以忍受 所以 为了减少流量 我想到了应用 diff 工具 问题是 如何找到并报告两棵树的差异 例如 ah bh ha
  • Javascript分布式计算[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么没有任何 Javascript 分布式计算框架 项目 这个想法对我来说绝对很棒 因为 客户端就是浏览器 可以使用AJAX进行迭代 网站管理
  • 使用 Socket.IO 的 Python 客户端到 nodeJS 服务器

    我正在尝试使用 socket io 将值从我的树莓派 在 python 2 7 9 中 发送到我的 nodeJS 服务器 我的目标是通过 websocket 连接从我的 pi 连续发送许多值到我的节点服务器 本地 该服务器应该获取这些值并将
  • NSFetchedResultsController 在 VIPER 架构中的位置是什么?

    In VIPER https www objc io issues 13 architecture viper 与MVC不同的是 NSFetchedResultsController的角色和地点没有那么明确的定义 把它放在交互器上合适吗 根
  • 如何获取当前显示的片段?

    我正在Android中玩fragment 我知道我可以使用以下代码更改片段 FragmentManager fragMgr getSupportFragmentManager FragmentTransaction fragTrans fr
  • 如何使用 Perl 检查文件的扩展名?

    对于我的 Perl 脚本 一个文件作为参数传递 该文件可以是 txt文件或一个 zip文件包含 txt file 我想编写看起来像这样的代码 if file is a zip unzip file file s zip txt 检查扩展的一
  • 如何删除 prestashop 1.6.1 上的送货步骤?

    我是新来的预斯塔商店我在删除送货步骤时遇到了很大的麻烦 因为我只销售虚拟产品 我正在使用 prestashop 1 6 1 我知道我必须修改order carrier tpl文件并关注了几篇帖子 但无法正确完成 你们中有人对如何做到这一点有
  • 重置rails中的主键id

    当我从表中删除所有并开始再次插入时 我遇到主键如何递增的问题 这是有问题的 因为我还有与已清除表关联的其他模型 例如 如果我有属于 Computer 的 Apple 那么当我清除 Computer 表并重新添加计算机时 关联会变得混乱 因为
  • Android 应用内计费:使用 sku android.test.purchased 时出错(响应:5:开发人员错误)

    我已通过标准助手发送了测试购买意向 String SKU android test purchased mHelper launchPurchaseFlow this SKU 10001 mPurchaseFinishedListener
  • 在 ngrx 上创建非记忆选择器

    是否可以在 ngrx 上创建非记忆选择器 我有一个非常小的选择器来检查存储中的值是否大于 Date now export const selectAuthState createFeatureSelector