【发布时间】:2022-01-20 04:01:15
【问题描述】:
我正在使用useAuth0() 挂钩中的logout 函数注销。但是,当我尝试使用它时,出现以下错误
Error: "You forgot to wrap your component in <Auth0Provider>"
但是,它包含在 Auth0Provider 中,所以我不确定是什么导致了这个错误。
const { logout } = useAuth0();
return (
<Auth0Provider
domain={redacted}
clientId={redacted}
redirectUri={redacted}
audience={redacted}
cacheLocation="localstorage"
>
<GlobalCss />
<AuthGuard>
<AuthorizedApolloProvider>
<BaseToolbar css={{justifyContent: 'space-between'}}>
<ToolbarToggleGroup type="multiple">
<ToolbarToggleItem
value="Users/Search"
onClick={() => router.push('/user')}
>
Users/Search
</ToolbarToggleItem>
</ToolbarToggleGroup>
<ToolbarToggleGroup type="multiple">
<ToolbarToggleItem
value="Logout"
// here is where i logout
onClick={() => logout({ returnTo: window.location.origin })}
>
Logout
</ToolbarToggleItem>
</ToolbarToggleGroup>
</BaseToolbar>
<DefaultHead />
<Component {...pageProps} />
</AuthorizedApolloProvider>
</AuthGuard>
</Auth0Provider>
)
【问题讨论】:
-
我认为您必须从包装在提供程序中的组件调用
useAuth0。您调用它的那个提供者作为一个孩子,所以它在它之外。 -
@Abe 就是这样,谢谢
-
太棒了。如果您不介意,我会将其添加为答案
标签: reactjs react-native next.js auth0