Mobx-State-Tree: Как клонировать модель, которая включает ссылки? - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь клонировать модель, которая ссылается на другую модель, но я получаю: 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)
}

1 Ответ

0 голосов
/ 01 марта 2019

Вы также пытались изменить идентификатор узла, который хотите клонировать?

Я не уверен, будет ли это работать.но когда вы клонируете узел задания, я думаю, что новое созданное задание newJob действует как ссылка на клонированное задание, в любом случае попробуйте:

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