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

Ole*_*our 2 mobx

即使在阅读了文档之后,我也试图了解 mobx 中动作装饰器的有用性,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);      
    }
      ...
Run Code Online (Sandbox Code Playgroud)

Ehs*_*san 5

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

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