在mobx-persist中重新合成树结构的问题

sto*_*fln 5 reactjs mobx mobx-persist

我在为包含由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?
    ...
Run Code Online (Sandbox Code Playgroud)

任何提示都很好!

Ami*_*avi 1

我认为问题在于该类TreeNode不可序列化,并且认为该类Mobx具有@serializable装饰器。由于自引用装饰器在 Babel 5.x 和 Typescript 中工作,因此您可能可以执行以下操作:

@persist @serializable(list(object(TreeNode))) @observable childNodes = [];

或者也许没有@persist,我还没有测试过