我正在使用@clerk/nextjs,并希望检查用户的会话是否通过此const { isSignedIn, isLoaded, user } = useUser();但是isSignedIn在初始时总是false,isLoaded总是true。如何检查此的加载状态?是否有任何职员的钩子或变通方法(除了超时)来检查user isSignedIn=false或它只是Loading?
const { isSignedIn, isLoaded, user } = useUser();
93ze6v8z1#
似乎只有当user是null时,useUser钩子才会同时返回isLoaded: true和isSignedIn: false(ref)因此,如果isSignedIn是false而不是undefined(表示加载状态),则也不会有用户对象。您可以检查undefined的isSignedIn以检查它是否仍在加载。但是可能代码中还有其他错误,很难用当前可用的信息来告诉其他任何事情。
user
null
useUser
isLoaded: true
isSignedIn: false
isSignedIn
false
undefined
1条答案
按热度按时间93ze6v8z1#
似乎只有当
user
是null
时,useUser
钩子才会同时返回isLoaded: true
和isSignedIn: false
(ref)因此,如果
isSignedIn
是false
而不是undefined
(表示加载状态),则也不会有用户对象。您可以检查
undefined
的isSignedIn
以检查它是否仍在加载。但是可能代码中还有其他错误,很难用当前可用的信息来告诉其他任何事情。