为什么我应该在 mobx 中使用动作装饰器

2023-12-30

即使在阅读了文档之后,我也试图了解 mobx 中动作装饰器的有用性,https://mobx.js.org/refguide/action.html https://mobx.js.org/refguide/action.html

仍然想知道为什么我应该使用 @action 或 @action.bound,而不是强制执行组件无法直接更改可观察值的模式。

上面的文章提到提供“有用的调试信息”。但我在哪里可以找到这些信息呢?调用 @action 或 @action.bound 方法时,F12->Console 不显示任何内容。

或者我在下面的代码中做错了什么?

我应该安装一些 mobx 调试器吗?谢谢。

class CommentStore {
    @observable commentData = [];

    @action.bound
    updateComment(id, name) {     
        this.commentData.map(p => p.id === id ? p.name = name : p.name = p.name);      
    }
      ...

如果您在未用 @action 修饰的方法内改变多个可观察变量,则您的派生(自动运行)将运行多次。当您使用 React 时,不会出现此问题。渲染函数只会运行一次。

@action 装饰器所做的事情之一是防止多次调用派生。

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

为什么我应该在 mobx 中使用动作装饰器 的相关文章

随机推荐

  • 在 android 中将一组图像转换为单个视频文件

    我有一组图像 我希望循环运行它们 并将其保存为 SD 卡中的视频文件 android 中有没有我可以使用的默认实用程序 任何可以满足我的要求的图书馆 您需要一个库来创建这些 这里有一些关于此的帖子 用于创建视频的 Java 包 https
  • 迄今为止的 Django 模板标签 ISO

    这个问题类似于this one https stackoverflow com questions 7737146 django template date format但在我看来却截然不同 我有一个具有一些日期时间属性的对象 为了序列化它
  • 通过 cloudformation 使用 aws `cdk Synth` 输出

    我正在一个具有现有的基于 Cloudformation 的管道的环境中工作 我想知道是否可以在 CDK 中描述我的基础设施 然后生成要在管道中使用的 Cloudformation 而不需要更改管道 我希望我使用 CDK 的事实是完全透明的
  • 在javascript中获取以毫秒为单位的时间的更好方法?

    JavaScript 中是否有另一种方法可以使用日期对象获取以毫秒为单位的时间 或者至少有一种重用该对象的方法 而不必每次需要获取该值时都实例化一个新对象 我问这个问题是因为我试图用 JavaScript 制作一个简单的游戏引擎 并且在计算
  • iPhone 上 UIAlertView 中的 UITextField - 如何使其响应?

    我将 UITextField 放入 UIAlertView 中并将其向上移动 这样键盘就不会用以下代码覆盖它 dialog setDelegate self dialog setTitle Enter Name dialog addButt
  • Python cmd 模块的命令别名

    如何在使用以下命令实现的面向行的命令解释器中为命令创建别名cmd module 要创建命令 我必须执行do cmd方法 但我有长名称的命令 比如constraint 并且我想为这些命令提供别名 实际上是快捷方式 例如co 我怎样才能做到这一
  • jQuery 解析原始 HTML,以及 Firefox 上的 hasOwnProperty

    我使用加载一些 HTML get or ajax 在 Chrome 和 Firefox 的调试器中 我可以看到 html 已正确加载 gt 数据 div style display none width 100 height 600px d
  • 无限 Webpack 监视循环 - 如何忽略对 .js 文件的更改等

    My webpack w使用 ts loader 的命令处于无限循环中 我猜这是因为 webpack w 看到了 js 文件的更改 因此导致loop webpack w gt ts transpile gt js 更改 gt webpack
  • Debezium Postgres Kafka 连接器心跳未提交 LSN

    我在 AWS RDS 上有一个 Postgres Db 并且有一个 kafka 连接器 Debezium Postgres 正在监听表 连接器的配置 name my connector config connector class io d
  • C# 原始数组是易失性的吗?

    我这样声明数组private double array new double length 在一个线程中更新此数组项并在另一个线程中读取是否安全 我会有最新的价值吗 注意我不枚举数组 我仅通过索引访问其项目 数组不是线程安全的 从MSDN
  • gcc 找不到模板专门化

    我的网络代码使用模板专门化来序列化不能简单复制的类型 我定义了一个通用模板 template
  • 如何为 IntelliJ 社区版添加 hibernate 支持?

    我是 Hibernate 框架的新手 主要熟悉 IntelliJ IDE 据我了解 IntelliJ 社区版默认不提供 Hibernate 框架支持 还有另一种方法可以将 Hibernate 单独包含到 IntelliJ 项目中吗 None
  • scikit-learn k-means:预测方法的真正作用是什么?

    当我使用 scikit learn 的 k means 实现时 我通常只调用fit 方法 这足以获得聚类中心和标签 这predict 方法用于计算标签 甚至fit predict 方法是为了方便起见 但如果我只能使用fit 目的是什么pre
  • 如何修复 PyCharm 上的 vcvarsall 错误? [复制]

    这个问题在这里已经有答案了 我使用的是 64 位 Windows 7 SP1 我有 PyCharm 社区版 4 0 4 和 Python 3 4 2 我想在 PyCharm 中安装新包 在 PyCharm 中 当我去File gt Sett
  • HTML5离线认证

    我正在寻求有关如何最好地控制对主要离线使用的 HTML5 应用程序的访问的建议 批评 该应用程序使用 IndexedDB 本地和会话存储的组合来存储数据 以便可以离线使用 数据 页面通过 HTTPS 提供 目的是最大限度地降低平板电脑 个人
  • 如何制作可移植的 isnan/isinf 函数

    我一直在使用isinf isnanLinux 平台上的功能完美运行 但这在 OS X 上不起作用 所以我决定使用std isinf std isnan它可以在 Linux 和 OS X 上运行 但英特尔编译器无法识别它 我猜这是英特尔编译器
  • 重新启动以循环迭代列表python3

    蟒蛇 3 6你好 我试图用 for 循环迭代列表 只要条件得到确认 我就必须重新启动循环 在C中我会这样做 for i 0 i lt 10 i if list i something i 0 在这里我试图这样做 for x in listP
  • Android 应用程序因 Vitamio 库而崩溃

    我已经为 Android 应用程序上的流媒体视频编写了一个简单的代码 我使用了 Vitamio 库 遵循了所有必要的步骤来集成到项目中 视频无法播放并且应用程序在加载时崩溃 package com test bufferapp import
  • 获取wordpress父模板名称

    我需要获取页面父模板名称 我知道我可以对当前页面使用 get page template 但似乎没有办法获取父页面 是否也可以只获取模板名称而不是其路径 是的 get page template 只能返回当前页面的文件路径 请改用 get
  • 为什么我应该在 mobx 中使用动作装饰器

    即使在阅读了文档之后 我也试图了解 mobx 中动作装饰器的有用性 https mobx js org refguide action html https mobx js org refguide action html 仍然想知道为什么