Mobx-State-Tree: Как клонировать модель, которая включает ссылки?
Я пытаюсь клонировать модель, которая ссылается на другую модель, но я получаю: 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)
}
0 ответов
Вы также пытались изменить идентификатор узла, который хотите клонировать?
Я не уверен, что это сработает. но когда вы клонируете узел задания, я думаю, что новое созданное задание newJob действует как ссылка на клонированное задание, в любом случае, попробуйте:
let jobFromSnap = getSnapshot(job);
let newJob = Job.create({...jobFromSnap, id : "NEW_ID_HERE" }) ;