У меня есть табличный компонент, как на картинке. Справа вверху есть кнопка обновления. Когда пользователь нажимает на нее, я обновляю таблицу с помощью mutate(), но isLoading не становится истинным, поэтому счетчик загрузки не отображается. Я хочу, чтобы пользователь знал, что таблица обновляет данные, показывая индикатор загрузки.
Моя текущая строка для получения данных:
const { data: originalData, isLoading, mutate } = useSWR(fetch-table, fetcher);
Табличный компонент:
Есть ли способ сделать isLoading истинным после того, как данные пришли один раз?
🤔 А знаете ли вы, что...
JavaScript имеет множество встроенных объектов, таких как Array, Date и Math.
Наверное mutate
ничего не делать из-за кеша, попробуйте проверить в браузере. Кроме того, вы можете указать параметры управления кешем для функции mutate. Проверьте раздел повторной проверки в документации здесь: https://swr.vercel.app/docs/mutation#api
В SWR есть функция cache.delete. Нам нужно удалить кеш, чтобы снова увидеть состояние загрузки.
import useSWR, { useSWRConfig } from 'swr';
const { data: originalData, isLoading, mutate } = useSWR("fetch-table", fetcher);
const { cache } = useSWRConfig();
const onRefresh = () => {
cache.delete("fetch-table") //fetch-table is your req key.
mutate();
}