【发布时间】:2019-06-12 12:10:33
【问题描述】:
当我对一个可观察对象执行 toJS() 时,我得到一个空对象。在使用 Object.assign() 调用 API 后,我将值分配给 observableObject。现在我在不同商店的 computed 方法中使用这个observableObject,如下面的代码所示。
class Store {
@observable observableObject = {};
Fetch(){
.....
APIcall()
.then((response) => {
Object.assign(this.observableObject, response.data);
}).catch(...)
}
.....
}
class Store2 {
@computed get computedValue(){
// return an non empty {Symbol(mobx administration): ObservableObjectAdministration$$1} object
console.log(this.rootStore.store1.observableObject);
// returns True
console.log(isObservable(this.rootStore.store1.observableObject));
// return an empty object
console.log(toJS(this.rootStore.store1.observableObject));
}
}
我已经提到了这个issue,但找不到任何帮助。在下面找到observableObject 的日志。谁能解释一下 toJS() 在 mobx 中的意外行为。
编辑:代理 mobx observable 日志中的目标字段包含所有字段,但 toJS() 转换产生空对象。这是沙盒演示
【问题讨论】:
-
我写了一个答案,然后意识到它依赖于版本(如果您不使用 v4 或更低版本,则无关紧要)。您能否分享一个完整的最小示例来演示该问题?也许使用codesandbox.io 或类似的。
-
更新问题请看
标签: reactjs mobx mobx-react jsobject