Удаление запроса из кэша без повторной выборки запроса react

#javascript #reactjs #react-query

#javascript #reactjs #react-запрос

Вопрос:

Я использую запрос react в своем приложении react таким образом

     const { data, status } = useQuery(key, queryFunc, { staleTime: 1 * 60 * 1000 });
 

Я хочу иметь возможность аннулировать определенный ключ в кэше на основе значения данных, в основном, когда данные равны нулю, поэтому я добавил эффект

 useEffect(() => {
   if (data === null) {
     queryClient. invalidateQueries(key)
   }
}, [data])
 

Этот подход вызовет цикл запроса, в котором недействительный запрос будет повторно выбран, получит null в качестве ответа, эффект выполняется и аннулируется и так далее и тому подобное…

Я хочу иметь возможность удалять ключ из кэша без повторной выборки, поэтому я не попадаю в этот бесконечный цикл запросов, копался в документах react query, но безуспешно. В любом случае, был аналогичный случай с react query, когда ключ необходимо удалить из кэша без повторной выборки?

Ответ №1:

Я думаю queryClient.removeQueries(key) , будет делать то, что вы хотите: https://react-query.tanstack.com/reference/QueryClient#queryclientremovequeries

Не могли бы вы немного подробнее рассказать о своем варианте использования? Почему вы хотите удалить запрос из кэша, если данные имеют значение null?