在使用SWR時,您可能會遇到這個問題:只有在擁有一些數據時才想要發送請求。
舉個例子,我曾遇到的一個情況是,在向/api/user
端點發送請求獲取用戶數據之前,我需要確定用戶是否已登錄。
具體來說,我有一個session
對象,其中包含了一個user
對象,它們都需要被定義。
所以,以下是我的解決方法:
import fetcher from 'lib/fetcher'
...
const { data: userData } = useSWR(session && session.user ? `/api/user` : null, fetcher)
第一個參數是URL。如果它是null
,那麼SWR就不會發送請求,從而解決了原來的問題。