mobx-state-tree:如何克隆包含引用的模型?

我正在尝试克隆一个引用另一个模型的模型,但我得到:错误:[mobx-state-tree]无法解析引用’H1qH2j20z’以输入’AnonymousModel'(来自node:/ ordinaryCustomer)…克隆.原来解决好了.

这是我的模特:

const Job = types.model({
    id: types.optional(types.identifier(types.string), shortid.generate()),
    jobNumber: types.optional(types.string, ''),
    description: '',
    usualCustomer: types.maybe(types.reference(Customer)),
  })

const Customer = types.model({
    id: types.optional(types.identifier(types.string), shortid.generate()),
    name: types.optional(types.string, 'New customer'),
  })

此功能显示问题:

editJob = job => {
    console.log('Original', job)
    var newClone = clone(job)
    console.log('Clone', newClone)
}

最佳答案 您是否还尝试更改要克隆的节点的标识符?

我不确定它是否会起作用.但是当您克隆作业节点时,我认为新创建的作业newJob充当对克隆作业的引用,无论如何都要尝试:

let jobFromSnap = getSnapshot(job);  
let newJob = Job.create({...jobFromSnap, id : "NEW_ID_HERE" }) ;
点赞