У меня есть REST API, который имеет эту конечную точку для получения задания -
'/classes/<str:code>/assignments/<int:assignment_id>'
Я создал собственный хук для запроса Assignment:
const getAssignment = async ({ queryKey }) => {
const [, code, assignmentId] = queryKey
const { data } = await api.get(`/classes/${code}/assignments/${assignmentId}`)
return data
}
export default function useAssignment(code, assignmentId) {
return useQuery(['assignment', code, assignmentId], getAssignment)
}
Это работает, как и ожидалось, но правильный ли это способ работы с реляционными данными в react-query?
Решение проблемы
код выглядит правильно для меня. react-query не имеет нормализованного кеша, только кеш документов. Поэтому, если вы запрашиваете назначения с другим ключом запроса, например, назначения для пользователя, они будут кэшироваться отдельно.
Прямой подход к решению этой проблемы состоит в том, чтобы структурировать ваши ключи запроса таким образом, чтобы вы могли аннулировать все одновременно.
Комментариев нет:
Отправить комментарий