簡體   English   中英

您如何在Falcor中使整個范圍無效?

[英]How do you invalidate a whole range in Falcor?

假設我有一個簡單的類別和文章系統,並且有一條這樣的路徑可以獲取特定類別中所有文章的列表。

categoriesById[{integers:ids}].articles[{ranges:rows}]

現在,該路線已被硬編碼以按照最新的順序對文章進行排序,因此,當我添加新文章時,我需要(假定)使類別中的所有文章無效,因為我希望文章0為新文章。

有沒有一種速記的方式來一個類別中的無效條款的整個范圍,或者我需要每一個無效articlecategoriesById明確,或者是有辦法拼接項目到在JSONGraph列表?

您可以使用范圍對象

call(path, arg, refPaths, thisPaths) {
    // add new article
    const newLength = // get new length somehow
    return [
        {
            path: [
                "categoriesById", 
                path.categoryId, 
                "articles",
                {length: newLength}
            ],
            invalidated: true
        }
    ]
}

請注意,您可能希望您的call返回有關新創建的文章或更新的文章數的更多信息。 在這里它什么也不會返回,而是必須從客戶端的緩存中刪除整個articles數組的事實。 要返回更多信息,可以將路徑/值對添加到返回的數組。

您可以提供指向集合根目錄的路徑以使其invalidate

var model = new falcor.Model({
  cache: {users: [{name: "Scott"}]}
})

console.log(model.getCache().users) // Object {0: Object, length: Object}
model.invalidate("users")
console.log(model.getCache().users) // undefined

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM