Как вы лишаете законной силы весь диапазон в Falcor?
Предположим, у меня есть простая система категорий и статей, и есть такой путь, чтобы получить список всех статей в определенной категории.
categoriesById[{integers:ids}].articles[{ranges:rows}]
Теперь этот маршрут жестко задан для сортировки статей сначала по самым новым, поэтому, когда я добавляю новую статью, мне нужно (я полагаю) сделать недействительными все статьи в категории, потому что я хочу статью 0
быть новой статьей.
Есть ли краткий способ аннулировать весь диапазон статей в категории, или мне нужно аннулировать каждый article
под categoriesById
явно, или есть способ разделить элемент в список в JSONGraph?
2 ответа
Вы можете использовать объект диапазона.
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