Я использую реакцию родной области.Объект базы данных Realm, включая дочерние объекты и списки?
Удаление объекта не приводит к удалению списков и элементов списка дочерних объектов и дочерних списков. Должно ли это?
Я должен рекурсивно перебирать списки и удалять объекты listItem и дочерние списки, прежде чем я смогу удалить список корневых объектов.
Моя работа вокруг:
function dbDeleteplan(plan) {
if (null == plan) {
return;
}
console.warn('Delete plan:', plan.name);
realm.write(() => {
console.log('dbg: dbDeleteplan:', plan);
if(plan.itemList) {
for(let i = 0; i < plan.itemList.length; ++i) {
realm.delete(plan.itemList[i].position.coords);
realm.delete(plan.itemList[i].position);
realm.delete(plan.itemList[i].imageList);
realm.delete(plan.itemList[i].itemList);
}
}
realm.delete(plan.itemList);
realm.delete(plan);
});
}
Я ожидал удаления родительского объекта будет работать, но это не делает:
realm.delete(plan);
Есть правильный способ удаления объектов в области?
Возможно, у меня возникла проблема с асинхронным подключением к новому объекту, который был создан до удаления старого объекта?
Спасибо заранее,
-ED
Realm не поддерживает каскадное удаление из коробки, вы должны удалить «ребенок» списки вручную – EpicPandaForce
Спасибо! Должен ли я также вручную каскадировать объекты удаления? Или только списки? –
Технически подумайте о «связях» между объектами, как о связях между независимыми объектами, которые позволяют осуществлять навигацию от одного к другому. – EpicPandaForce