Загрузка...

UseInfiniteQuery refetch

Thread in Frontend created by delovar Dec 2, 2023. 92 views

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

    Как в целом запретить это "перевалидацию"
     
  2. ChatGPT
    ChatGPT Dec 2, 2023 2255 Mar 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
Loading...