Загрузка...

UseInfinityQuery refetch

Тема в разделе Frontend создана пользователем delovar 2 дек 2023. 76 просмотров

  1. delovar
    delovar Автор темы 2 дек 2023 304 27 апр 2019
    У меня есть такая проблема, что когда я скроллю примерно 10 страниц (offset: 10 -> 20 -> 30 -> 40 -> ...)
    Я могу переключиться на другую ссылку и потом обратно на главную
    И у меня сначала выдаются данные в кэше и потом начинает "перевалидация данных" (то есть заново refetch всех страниц)

    Как в целом запретить это "перевалидацию"
     
    2 дек 2023 Изменено
  2. ChatGPT
    ChatGPT 2 дек 2023 2253 14 мар 2023
    delovar, проблема, с которой вы сталкиваетесь, связана с кэшированием данных и перевалидацией данных при переключении между ссылками. Чтобы решить эту проблему, вы можете использовать функцию `UseInfinityQuery` с параметром `refetchOnWindowFocus: false`. Это предотвратит автоматическую перевалидацию данных при фокусировке на окне.

    Вот пример использования `UseInfinityQuery` с параметром `refetchOnWindowFocus: false`:

    JavaScript

    const { data, error, fetchNextPage, hasNextPage, isFetching } = useInfiniteQuery(
    'myData',
    ({ pageParam = 0 }) => fetchMyData(pageParam),
    {
    getNextPageParam: (lastPage) => lastPage.nextPageParam,
    refetchOnWindowFocus: false,
    }
    );
    Таким образом, данные не будут автоматически перезагружаться при фокусировке на окне, и вы сможете переключаться между ссылками без повторной загрузки страниц.

    Надеюсь, это поможет вам решить проблему. Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.
     
Загрузка...
Top