MobX 对象数组上的深度自动运行

2023-12-22

我看过这个问题 https://github.com/mobxjs/mobx/issues/90在 Github 上和这个问题 https://stackoverflow.com/questions/40568576/make-single-mobx-autorun-or-reaction-for-observable-property-of-all-objects-in-a在 stackoverflow 上,但我仍然不确定如何触发我拥有的数据结构的自动运行。我从存储中获取数据作为 json 对象。

// Object keys do not change
const sampleData =
[
    {
        "title": "some-title",
        "isActive": true,
        "isCaseSensitive": false,
        "hidePref": "overlay",
        "tags": ["tag1", "tag2"]
    },
    {
        "title": "all-posts",
        "isActive": false,
        "isCaseSensitive": true,
        "hidePref": "overlay",
        "tags": ["a", "b", "c"]
    }
];

class Store {
    @observable data;

    constructor() {
        this.data = getDataFromStorage();
        if (this.data === null) {
            this.data = sampleData;
        }
    }
}

const MainStore = new Store();

autorun(() => {
    console.log("autorun");
    sendPayloadToAnotherScript(MainStore.data);
})

每次将新对象添加到数据数组或更改对象中的任何字段值时,如何让自动运行运行?


实现此功能的最简单方法是使用JSON.stringify()递归地观察所有属性:

autorun(() => {
  console.log("autorun");
  // This will access all properties recursively.
  const json = JSON.stringify(MainStore.data);
  sendPayloadToAnotherScript(MainStore.data);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MobX 对象数组上的深度自动运行 的相关文章

随机推荐

  • 如何在 PHP 中使用 MySQL 用户定义函数?

    花了几个小时寻找答案但没有成功 我在 MySQL 中编写了一个用户定义的函数 该函数传递一个标识符 该标识符用于检索各种数据 将其连接成一个字符串并返回它 我想从我的 PHP 页面调用这个函数并输出结果 不成功的尝试包括 1 result
  • 克服python中的opencv CV_IO_MAX_IMAGE_PIXELS限制

    我正在尝试使用 opencv 打开尺寸为 4864 x 382565 的图像 它大于 CV IO MAX IMAGE PIXELS 限制 2 30 像素 img cv2 cvtColor cv2 imread 路径 cv2 COLOR BG
  • 使用 gitpython 删除远程分支(push origin ':' )

    我找不到一种方法来执行相当于以下内容的推荐 git push 原点 分支名称 删除远程分支的命令 gitpython 可以使用 git push 执行此操作吗 Thanks 我自己找到了解决方案 大概是这样的 repo is a local
  • 将动态列逆透视到行 - 最后一列中缺少数据

    我有很多如下所示的表 每个表的列名称都不同 id city aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm 1 LAX 0 0 0 0 1 0 2 5 0 0
  • 过滤使用嵌套 xaml 数据模板显示的分层对象

    我在过滤嵌套 xaml 模板中显示的分层数据时遇到问题 我有一个ObservableCollection
  • crontab 只执行第一行

    我正在尝试在 centos whm 下的 VPS 上设置几个 cron 作业 我已将以下几行添加到 var spool cron root 中 5 find some dir iname ht delete 10 find some oth
  • C# 使用存储过程批量更新数据库

    我想运行更新存储过程来仅更新表中的两列 该表还有许多其他列 目前我已实施如下 foreach Object obj in customCollection string updatedValues GetUpdatedValues obj
  • matplotlib 图例中的项目顺序是如何确定的?

    当我认为我不应该这样做时 我不得不重新排序图例中的项目 我尝试 from pylab import clf ax gca ht ax add patch Rectangle 1 1 1 1 color r label Top alpha 1
  • Conda 安装 BLPAPI

    我遵循以下答案 Anaconda 在环境中安装 blpapi https stackoverflow com questions 41725483 anaconda install blpapi in environment 但无法发表评论
  • 如何在运行时为动态创建的控件添加事件处理程序?

    我正在开发 C Windows 应用程序 我的应用程序从自定义控件库获取控件 按钮 文本框 富文本框和组合框等 并在运行时动态地将它们放入表单中 我如何使用委托为该控件创建事件处理程序 以及如何在特定的自定义控件单击事件中添加业务逻辑 例如
  • 在嵌入式 Flinkrunner (apache_beam [GCP]) 中使用 pub/sub io 运行光束流管道 (Python) 时出错

    我在 Flinkrunner 上的 Apache Beam 中运行流管道 python 时遇到以下错误 该管道包含 GCP pub sub io 源和 pub sub 目标 WARNING root Make sure that local
  • 在 javascript 中对对象数组应用 group by 和 sum

    我需要一些关于实现对 JSON 数据应用 group by 和 sum 的目标的正确方法的建议 一些服务器端代码实际上生成了我必须使用的 JSON siteDetails printerCode 660103684 siteId UTT21
  • MySQL 各种类型的列

    我似乎经常发现自己想要将多种类型的数据 通常是整数和文本 存储在 MySQL 数据库的同一列中 我知道这很可怕 但发生这种情况的原因是当我存储人们对调查问卷中的问题做出的回答时 有些问题需要整数响应 有些需要文本响应 有些可能是从列表中选择
  • 将 JavaScript 变量值转换为 csv 文件

    我的 js 文件中有一个逗号分隔的变量 例如 var out out 1 val1 val2 val3 val4 n out 2 val1 val2 val3 val4 n out 3 val1 val2 val3 val4 n 我正在使用
  • GLFW 无法正确链接

    最近我开始了一个涉及 GLFW 64 位 带有 GLEW 的项目 但是 我似乎无法让它正确链接 我的设置方式如下 操作系统 Windows 8 64位 编译器 mingw64 IDE 日食 我的简单测试程序 include
  • 更大的项目 Node.js 和 RESTful API

    我正在研究node js 它看起来确实是一个非常好的环境 我使用过许多不同的服务器技术 主要是 php 和 Java jsp 但也涉足了一些 RoR 和 Python 我发现 Node js 非常容易启动和运行 使用起来感觉很自然 而且我发
  • 在 Symfony 4 / Twig 模板中包含资源(CSS、JS)

    我正在学习 Symfony 并尝试在 Symfony 4 中设置样板应用程序 这个 Symfony 文档 https symfony com doc current templating html描述如何在页面中包含资产 即使用asset包
  • 三元运算符无法使用 PHP 中的引用变量[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为什么这不
  • 堆栈和队列之间的基本区别是什么?

    堆栈和队列之间的基本区别是什么 请帮助我 我无法找到差异 How你区分堆栈和队列吗 我在各种链接中搜索答案并找到了这个答案 在高级编程中 堆栈被定义为元素的列表或序列 通过将新元素放置在现有元素的 顶部 来延长元素 并通过从现有元素的顶部删
  • MobX 对象数组上的深度自动运行

    我看过这个问题 https github com mobxjs mobx issues 90在 Github 上和这个问题 https stackoverflow com questions 40568576 make single mob