在哪里使用 Redux 处理计算属性?

2024-03-14

使用 Redux 时,存储应该是唯一的事实来源,并且没有冗余。假设商店的一部分代表有名字和年龄的人。传统面向对象编程中的 person 类可能如下所示:

class Person {
    constructor(first, last, birthday) {
        this.first = first;
        this.last = last;
        this.birthday = birthday;
    get_fullname() { // ... //}
    get_age() { // ... //}
}

但是,Redux 存储中的对象不允许使用方法。那么,这些“方法”应该落实到哪里呢?


有两种方法:

  1. 在减速器中。

    不知道你从哪里得到的“商店里没有冗余”的规则。将计算结果与源数据一起保存在存储中是完全有效的(尽管在连接姓名这样的简单情况下可能不是最好的方法)

  2. 在选择器中。

    选择器是用于从存储中获取特定子分支的函数。他们还可以在返回之前对它们执行计算。有关一些示例,请参阅 redux 文档中的本章 http://redux.js.org/docs/recipes/ComputingDerivedData.html.

    我认为,在需要的地方进行一些记忆,这是两者中更好的解决方案。

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

在哪里使用 Redux 处理计算属性? 的相关文章

随机推荐

  • PostgreSQL - jsonb_each

    我刚刚开始在 postgres 上使用 jsonb 并在网上很难找到示例 因为它是一个相对较新的概念 我尝试使用 jsonb each text 打印出键和值表 但在单列中获取 csv 我将下面的 json 保存为 jsonb 并用它来测试
  • ggplot 中仅一个图例的标签为斜体

    我正在尝试格式化一个侧面有两个独立图例的绘图 我有一个用于所有不同分类单元的形状图例 以及一个用于它们所属类别的颜色图例 我只想将形状图例中的分类单元名称斜体化 而不将颜色图例中的类别名称斜体化 到目前为止 我可以使用这一行将所有图例条目设
  • 如何以自定义方式从主题恢复全局存储?

    假设我在从主题获取数据后将数据存储在 Globalstore 中时正在进行一些自定义处理 即我正在根据 message 的值创建自定义键 在本地删除状态后 它会以相同的方式再次恢复 Globalstore 吗 override def pr
  • 无法在 Android Studio 中使用 compose 检查器 (Flamingo 2022.2.1)

    设备的网络正常工作 但如屏幕截图所示 我无法连接到以下 URL maven google com 导致撰写检查器无法正常工作 我尝试修改旧版本 Compose 的版本 但没有解决问题 我可以以某种方式设置 URL 或其他解决方案 以便我可以
  • 如何使用express启用cors nodejs?

    总之 我正在使用一个像 api 这样的 dicom 文件查看器 称为 Cornstone 为此 我连接到 dc4chee 的 WADO 服务来获取 dicom dcm4chee 运行端口 8080 而我在节点上的应用程序使用端口 3000
  • 加载.csv文件时如何将当前系统时间戳插入db2数据库基列

    下面的类将把 csv 导入到数据库表中 它工作正常 现在我需要更新同一个表中的另一列 其中当前系统时间戳需要获取 当该程序在数据库表的相应列中执行时得到更新 示例 在 Db2 表中 主题列为 英语社会数学时间戳 在 CSV 文件中只有 3
  • 实体框架代码优先迁移保留现有数据

    我正在使用 EF 6 1 并且对包含生产环境中的数据的现有数据库使用代码优先方法 是否有可能迁移模型更改并保留现有客户的数据 是的 但是 根据具体情况 更改的复杂性 它可能会很复杂 概述 https learn microsoft com
  • dojo 中的状态服务器端过滤

    我正在 dojo 1 10 版本的增强网格中进行服务器端过滤 Here https dojotoolkit org reference guide 1 10 dojox grid EnhancedGrid plugins Filter ht
  • 如何自动删除项目的所有system.out.println语句,包括所有多行Sop语句[重复]

    这个问题在这里已经有答案了 实际上我想自动化删除所有的过程System out println 在将项目交付给客户之前 对整个项目进行陈述 怎么做 按 ctrl H 转到文件搜索 将包含文本填充为System out println 文件名
  • 将 std::bind 与成员函数一起使用,该参数是否使用对象指针?

    使用时std bind要绑定成员函数 第一个参数是对象this指针 然而 它可以将对象作为指针传递 也可以不传递 例如 请参见以下程序 include
  • 使用转换后的边界进行布局

    我已经缩放了窗格中的一个节点 但窗格的布局考虑了边界 没有任何转换 我希望它考虑到转换后的边界 例如 和代码 import javafx application Application import javafx geometry Pos
  • 如何在 Postgres.app 中降级/使用以前版本的 Postgres DB

    我已经从这里安装了 Postgres app http postgresapp com http postgresapp com 几天以前 它附带 Postgres 9 4 4 今天我发现我使用的软件官方只支持Postgres 9 3 9
  • Javascript导入包无法解析模块说明符

    我正在尝试导入使用 npm 下载的模块 我的 json 文件是 name nodejs web app1 version 0 0 0 description NodejsWebApp1 main server js author name
  • 致命异常:iOS 上的 NSInternalInconsistencyException 崩溃

    几天来我一直在尝试重新创建和研究这个问题 但我不会去任何地方 这是堆栈跟踪 任何人都可以阐明正在发生的事情吗 我认为这与远程通知有关 不久前 当我安装 firebase sdk 时 问题就开始了 当时事故发生的次数并不多 但现在 事故发生的
  • 带有 pandas 数据框的子图

    我想使用 pandas 数据框 称为 df 在图上创建多个子图 我原来的情节在这里 df plot x month y number title open by month color blue 我在本网站的 使用图形和子图 部分尝试了多次
  • 我如何定义“其余宽度”?

    这是我的代码 function tags input on focusout function var txt this value replace a z0 9 ig allowed characters if txt span span
  • 如何运行 Spark Java 程序

    我为 Spark 编写了一个 Java 程序 但是如何从 Unix 命令行运行和编译它 编译运行时是否必须包含任何 jar 结合官方步骤快速入门指南 https spark apache org docs latest quick star
  • D 中的枚举与不可变

    有什么区别 enum i 2 enum s Hello and immutable i 2 immutable s Hello 在 D 2 0 中 An enum是用户定义的类型 而不是变量 enum e 2 是一个 像这样的东西的简写en
  • 查找但不深入到包含搜索文件的目录

    我有几个由 pom xml 或类似配置的项目 我想使用 linux file 命令来定位这些项目 例如经过find name pom xml 然而 由于路径很深 这需要一些时间 我想用find prune当我已经找到文件时停止在子目录中搜索
  • 在哪里使用 Redux 处理计算属性?

    使用 Redux 时 存储应该是唯一的事实来源 并且没有冗余 假设商店的一部分代表有名字和年龄的人 传统面向对象编程中的 person 类可能如下所示 class Person constructor first last birthday