在我的 React 应用程序中,mobx @action 没有触发 - mobx,mobx-react-lite



我是第一次使用mobxmobx-react-lite,我可以看到@action没有触发任何事件。

请在此处找到代码沙盒网址

我的意图是当我点击按钮时,陈这个名字应该变成西安。但这并没有发生。你能告诉我我哪里做错了吗?提前谢谢。

您在 myStore 构造函数中缺少makeObservable

代码沙盒

文档

import { observable, action, makeObservable } from "mobx";
export class myStore {
@observable name: string = "CHAN";
constructor() {
makeObservable(this)
}
@action
setName(newName: string) {
this.name = newName;
}
}

除了@Christiaan答案之外,您还可以完全使用makeAutoObservable和掉落装饰器!

import { observable, action, makeAutoObservable } from "mobx";
export class myStore {
name: string = "CHAN";
constructor() {
makeAutoObservable(this)
}
setName(newName: string) {
this.name = newName;
}
}

更多信息: https://mobx.js.org/react-integration.html

最新更新