我有一個像如何處理在刪除反應阿波羅
mutation deleteRecord($id: ID) {
deleteRecord(id: $id) {
id
}
}
的突變和在另一個位置我有元素的列表。
有什麼更好的,我可以從服務器返回,我該如何更新列表?
更一般地說,處理apollo/graphql中刪除操作的最佳做法是什麼?
我有一個像如何處理在刪除反應阿波羅
mutation deleteRecord($id: ID) {
deleteRecord(id: $id) {
id
}
}
的突變和在另一個位置我有元素的列表。
有什麼更好的,我可以從服務器返回,我該如何更新列表?
更一般地說,處理apollo/graphql中刪除操作的最佳做法是什麼?
我不知道這是好的做法式但這裏是我如何處理項目的反應,阿波羅與updateQueries刪除:
嗨@vwrobel謝謝你的答案。我有興趣在緩存中刪除此記錄的任何重複記錄(我使用'$ {type}:$ {id}'作爲緩存鍵)。這是否也會這樣做? – derekdreery
嗨@derekdreery。當我使用'updateQuery'時,只有指定的代碼應用於以前的查詢結果。在我發佈的代碼中,我得到的唯一更改是從列表SceneCollections.myScenes中刪除了我刪除的項目。此外,如果我有其他查詢來獲取'user {id,sceneCounter}',我將不得不從updateQueries手動更新sceneCounter:即使我的DeleteSceneMutation返回更新的'user {id,sceneCounter}',其他查詢結果在我使用updateQueries時不會更新。不知道它回答你的問題,我的阿波羅知識是相當有限的... – vwrobel
不用擔心 - 我的知識也是有限的! – derekdreery
就我個人而言,我返回一個int
它表示刪除的項目數。然後我使用updateQueries
從緩存中刪除文檔。
您可以舉一個使用'updateQueries'去除記錄的例子:特別是它們在樹中多於一個位置的地方。 – derekdreery
您是否必須將其從所有位置移除? – derekdreery
你有沒有把它變成@derekdreery?我還沒有弄清楚如何使用'updateQueries'來刪除項目 – Dunos
自我提醒:本頁面可能是有用的HTTP: //dev.apollodata.com/react/cache-updates.html#updateQueries – derekdreery