什麼是正確的方式來分配值的MobX存儲變量?MobX Store變量賦值
我知道設置數組應該用replace()函數完成,否則常規數組將被分配給變量而不是可觀察數組。
但是對象呢?正確的方法是使用setObject1()或setObject2()?我試過兩種選擇,兩種都可以工作
那麼基元類型和變量如何用null初始化呢?再次定期作業,但它是正確的方式?
class store {
@observable array = [];
@observable object = {};
@observable primitive = 1;
@observable nullObj = null
@action setArray = array => {
this.array.replace(array)
}
@action setObject1 = object => {
this.object = object
}
@action setObject2 = object => {
this.object = observable(object)
}
@action setPrimitive = primitive => {
this.primitive = primitive
}
}
我想使用不可變對象並丟失原始可觀察對象,我應該使用this.object = observable(object)還是this.object = object? – Shahaf
@Shahaf我明白了。 MobX本質上是可變的,所以如果你完全替換了引用,那麼觀察對象的所有觀察者將不再工作。 – Tholle