我有以下疑问:
export const useCurrentUser = () => {
const enabled = !isGuestUser();
return useQuery({
queryKey: ['currentUser'],
queryFn: () => getCurrentUser(),
gcTime: Infinity,
initialData: enabled
? (jwtDecode(localStorage.getItem('token') as string) as User)
: ({} as User),
enabled,
refetchOnWindowFocus: false,
});
};
初始数据取自 localStorage 并且非常有限 - 我想区分初始数据和后来获取的完整数据。如何做到这一点?
来自文档:
重要提示:initialData 会持久保存到缓存中,因此不建议为此选项提供占位符、部分或不完整数据,而应使用 placeholderData
因此,您可能应该将初始数据替换为 placeholderData,然后您可以在
isPlaceholderData
结果中检查 isSuccess
与 useQuery
一起查看您所处的状态。