【问题标题】:mobx-state-tree: How to clone a model that includes references?mobx-state-tree:如何克隆包含引用的模型?
【发布时间】:2018-05-18 20:28:26
【问题描述】:

我正在尝试克隆一个引用另一个模型的模型,但我在克隆中得到:Error: [mobx-state-tree] Failed to resolve reference 'H1qH2j20z' to type 'AnonymousModel' (from node: /usualCustomer)...。原来的解析没问题。

这是我的模型:

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)
}

【问题讨论】:

    标签: mobx mobx-state-tree


    【解决方案1】:

    您是否也尝试更改要克隆的节点的标识符?

    我不确定它是否会起作用。但是当您克隆作业节点时,我认为新创建的作业 newJob 充当对克隆作业的引用,请尝试一下:

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

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 2018-06-17
      • 2020-11-14
      • 1970-01-01
      • 2021-12-24
      相关资源
      最近更新 更多