没有机会让一个强类型对象被mobx观察到

No chance to make an strongly typed object observable by mobx

本文关键字:对象 强类型 mobx 观察 一个 机会      更新时间:2023-09-26

我使用mobx库。它很适合ReactJS。我有一个这样的可观察数组:

@observable items = [];

当我以这种方式添加对象时,我没有任何问题,并且给定的对象将如预期的那样可观察。

let x = {
Title: "sample title"
}
items.push(x);

但是当我定义一个强类型对象(使用typescript)

export class SampleObject {
    Title: string;
    constructor(title: string) {
        this.Title = title;
    }   
}

并以这种方式推入新对象,它将不是可观察的

items.push(new SampleObject("Sample Title"));

我怎样才能解决这个问题!?

x和y有什么不同?!

var x = {
Title: "sample"
}
var y = new SampleObject("sample");

MobX只在将普通对象自动转换为可观察对象(例如数组)时,因为对于类实例,否则它可能会干扰该类的内部。

所以在你的类中,只要把你的字段(Title)标记为@observable,你就可以了。参见:https://mobxjs.github.io/mobx/refguide/object.html,第二个项目符号