我正在编写一个搜索函数,它返回一个ModelA或ModelB数组,但是当我在组件中使用引用时,引用仍然是一个字符串。从文档中,我期望这是实际的ModelA或ModelB,所以我觉得我做错了什么。
在根存储中,我创建了一个引用数组,如下所示:
searchResults: types.array(
types.union(
types.late(() => types.reference(ModelA)),
types.late(() => types.reference(ModelB)),
),
),当我从请求中获得它们时,它们被加载到存储中(我通过执行store.modelBs.get(<one of the ids>)进行检查,但组件仍然获得字符串数组:

有没有人知道这是否有效/我在这里做错了什么?
发布于 2020-07-26 03:04:50
对于后人来说,我发现不可能有一个包含多个类型的引用数组。Mobx-state-tree无法确定id引用的模型类型,并抛出错误:Failed to resolve reference 'idB1' to type 'AnonymousModel'。
编辑:实现这一点的方法是使用如下注释中的联合类型的dispatcher config option:https://github.com/mobxjs/mobx-state-tree/issues/1162#issuecomment-459742443
https://stackoverflow.com/questions/63081610
复制相似问题