我有一个单例课程:
let instance = null;
class SingletonClass {
constructor() {
if (!instance) {
instance = this;
}
return instance;
}
get types() {
return this._types;
}
set types(value) {
this._types = value;
}
}
export default SingletonClass;
我这样使用它:
import SingletonViews from './SingletonClass';
export default class MyStore {
this._singletonClass = new SingletonClass();
@observable types;
this.types= this._singletonClass.types; //i dont know what to do here to bind this two together
}
但是无论何时this._singletonClass.types
更新types observable
都不会。我该怎么办?
我可以拥有@observable singleton
还是可以将其属性绑定到@observable
答案 0 :(得分:0)
您的“单个”本身不是可观察的,您的意图是什么?只是代理单例值?
由于您似乎不需要初始化单例,因此我将以此方式进行重写:
单人
import * as mobx from 'mobx'
const {observable, action} = mobx
class SingletonClass {
@observable types
@action setTypes (value) {
this.types = value;
}
}
export default new SingletonClass()
我的商店
import singletonClass from './SingletonClass'
export default class MyStore {
singletonClass = singletonClass
}
现在,您可以在应用程序中的某个地方使用商店,并观察您的单例。