SWR预加载数据后为什么组件还是会闪一下加载状态?

司徒俊俊 阅读 5

我在用SWR做数据预加载,明明在进入页面前就调用了fetcher,但组件首次渲染时还是会短暂显示loading状态,体验很不好。是我预加载的方式不对吗?

我是在路由跳转前这样预加载的:

import { mutate } from 'swr'

// 跳转前预加载
mutate('/api/user', fetchUser())

// 页面组件里
const { data, isValidating } = useSWR('/api/user', fetchUser)
if (isValidating && !data) return <div>Loading...</div>

按理说mutate已经把数据塞进缓存了,为什么useSWR第一次还是拿不到data,非要等一轮revalidate?

我来解答 赞 2 收藏
二维码
手机扫码查看
暂无解答

暂无解答