Почему иногда fallbackData не загружается в компоненте SWR в Next.js?

Изображение к вопросу
  • 18 августа 2023 г. 14:56
Ответы на вопрос 1
Это может быть связано с тем, как работает кэширование данных в библиотеке SWR. SWR пытается использовать кэшированные данные, если они доступны, прежде чем вызывать функцию получения данных. Однако, если данные уже были загружены ранее и кэшированы, SWR может решить, что эти данные более актуальны и решить не использовать fallbackData.

В вашем случае, когда вы возвращаетесь на страницу после перехода на другой роутер, SWR обнаруживает, что уже есть кэшированные данные и решает использовать их, игнорируя fallbackData. 

Если вам нужно гарантировать загрузку данных из fallbackData каждый раз, когда вы возвращаетесь на страницу, вы можете использовать опцию `revalidateOnMount` и установить ее в `true`. Например:

```jsx
const { data, error } = useSWR('/api/sites?page=1', fetcher, {
  fallbackData: siteList,
  revalidateOnMount: true
});
```

Это заставит SWR выполнять запрос на сервер каждый раз, когда компонент монтируется, даже если есть кэшированные данные.
Похожие вопросы