我在给商店充水时遇到问题,该商店包含由TreeNode对象组成的树数据结构。我正在使用以下库: https://github.com/pinqy520/mobx-persist
问题在于实例被水化为对象而不是TreeNodes。我的猜测是(在阅读https://github.com/pinqy520/mobx-persist/issues/25之后,我不能使用类定义来持久化类本身,但是我不确定这是否真的是原因。
那是我的TreeNode类:
export default class TreeNode {
@persist id = Math.random();
@persist @observable title = "Root";
@persist @observable collapsed = false; // if node should be shown opened
@persist('list', TreeNode) @observable childNodes = []; // <- should this work?
...
任何提示都好!
答案 0 :(得分:1)
我认为问题在于TreeNode
类不可序列化,并且认为Mobx
具有@serializable
装饰器。并且由于自引用装饰器在Babel 5.x和Typescript中工作,因此您可以执行以下操作:
@persist @serializable(list(object(TreeNode))) @observable childNodes = [];
或者也许没有@persist
,我还没有测试过