2016-11-30 35 views
0

我正在使用反應本地領域。領域數據庫刪除對象包括子對象和列表?

刪除對象似乎不會刪除列表和列表項子對象和子列表。應該是?

我必須遞歸遍歷列表,刪除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

+2

境界不支持開箱刪除開箱即用,您必須手動刪除「子」列表 – EpicPandaForce

+0

謝謝!我也必須手動級聯刪除對象嗎?或者只列出? –

+1

從技術上講,將對象之間的「鏈接」想象爲允許從一個對象導航到另一個對象的獨立對象之間的鏈接。 – EpicPandaForce

回答

0

可能這種解決方案的工作!

realm.objects('plan').filtered('plan==%@', VALUE).addListener((tanplan, changes) => { 

      tanplan.forEach((realmObj,index) => {       
       realm.delete(realmObj);    
      }); 

     });