没有机会让强类型对象被 mobx 观察到
No chance to make an strongly typed object observable by mobx
我使用 mobx 库。它非常适合 ReactJS。
我有这样的可观察数组:
@observable items = [];
当我以这种方式添加一个对象时,我没有遇到任何问题,给定的对象将按预期方式被观察到。
let x = {
Title: "sample title"
}
items.push(x);
但是当我定义一个强类型对象时(使用打字稿)
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 仅在将它们分配给例如一个数组,因为对于 class 个实例,它可能会干扰 class 的内部结构。
因此,在您的 class 中,只需将您的字段(标题)也标记为 @observable
,您就可以开始了。参见:https://mobxjs.github.io/mobx/refguide/object.html,第二个项目符号
我使用 mobx 库。它非常适合 ReactJS。 我有这样的可观察数组:
@observable items = [];
当我以这种方式添加一个对象时,我没有遇到任何问题,给定的对象将按预期方式被观察到。
let x = {
Title: "sample title"
}
items.push(x);
但是当我定义一个强类型对象时(使用打字稿)
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 仅在将它们分配给例如一个数组,因为对于 class 个实例,它可能会干扰 class 的内部结构。
因此,在您的 class 中,只需将您的字段(标题)也标记为 @observable
,您就可以开始了。参见:https://mobxjs.github.io/mobx/refguide/object.html,第二个项目符号