2016-11-08 43 views
10

我有一個像如何處理在刪除反應阿波羅

mutation deleteRecord($id: ID) { 
    deleteRecord(id: $id) { 
     id 
    } 
} 

的突變和在另一個位置我有元素的列表。

有什麼更好的,我可以從服務器返回,我該如何更新列表?

更一般地說,處理apollo/graphql中刪除操作的最佳做​​法是什麼?

+0

自我提醒:本頁面可能是有用的HTTP: //dev.apollodata.com/react/cache-updates.html#updateQueries – derekdreery

回答

9

我不知道這是好的做法式但這裏是我如何處理項目的反應,阿波羅與updateQueries刪除:

​​
+0

嗨@vwrobel謝謝你的答案。我有興趣在緩存中刪除此記錄的任何重複記錄(我使用'$ {type}:$ {id}'作爲緩存鍵)。這是否也會這樣做? – derekdreery

+0

嗨@derekdreery。當我使用'updateQuery'時,只有指定的代碼應用於以前的查詢結果。在我發佈的代碼中,我得到的唯一更改是從列表SceneCollections.myScenes中刪除了我刪除的項目。此外,如果我有其他查詢來獲取'user {id,sceneCounter}',我將不得不從updateQueries手動更新sceneCounter:即使我的DeleteSceneMutation返回更新的'user {id,sceneCounter}',其他查詢結果在我使用updateQueries時不會更新。不知道它回答你的問題,我的阿波羅知識是相當有限的... – vwrobel

+0

不用擔心 - 我的知識也是有限的! – derekdreery

2

就我個人而言,我返回一個int它表示刪除的項目數。然後我使用updateQueries從緩存中刪除文檔。

+0

您可以舉一個使用'updateQueries'去除記錄的例子:特別是它們在樹中多於一個位置的地方。 – derekdreery

+0

您是否必須將其從所有位置移除? – derekdreery

+0

你有沒有把它變成@derekdreery?我還沒有弄清楚如何使用'updateQueries'來刪除項目 – Dunos