在使用SWR時,您可能會遇到這個問題:只有在擁有一些數據時才想要發送請求。

舉個例子,我曾遇到的一個情況是,在向/api/user端點發送請求獲取用戶數據之前,我需要確定用戶是否已登錄。

具體來說,我有一個session對象,其中包含了一個user對象,它們都需要被定義。

所以,以下是我的解決方法:

import fetcher from 'lib/fetcher'

...

const { data: userData } = useSWR(session && session.user ? `/api/user` : null, fetcher)

第一個參數是URL。如果它是null,那麼SWR就不會發送請求,從而解決了原來的問題。