Нужна помощь корректно создать ссылку на стор через types.reference в mobx-state-tree
Помогите, пож-та, разобраться с types.reference в mobx-state-tree: https://mobx-state-tree.js.org/concepts/references Не стандартный способ использования reference: у меня кастомный "резолвер" для поиска ноды. В документации есть пример, когда вторым аргументом передаётся объект с кастомным геттером и сеттером. Имея похожую семантику, я получаю ошибку: "Error: [mobx-state-tree] expected mobx-state-tree type as argument 1, got undefined instead".
// стор:
import { types, getRoot, cast } from "mobx-state-tree";
import { OriginalNode } from "...";
export const Node = types
.compose(
AsyncModuleStore,
types.model({
id: types.string,
originalNode: types.maybeNull(OriginalNodeStore),
})
)
.actions(() => ({
setOriginalNode: () => self.originalNode = cast(self.id as any);
}))
export const OriginalNodeStore = types.reference(OriginalNode, {
get(nodeId: string, parent: any) {
const { nodes } = getRoot<IRootStore>(parent).data;
const node = workflow
.find((node: any) => node.id === nodeId);
return node || null;
},
set(node) {
return node.id;
},
});
// инициализация стора происходит в компоненте:
useEffect(() => {
setOriginalNode();
}, []);