我希望将useUser返回的Auth0(Auth0)User对象存储在Reaction上下文API中. 以下是我的userConext.tsx,目标是能够在我的应用程序中全局访问User内的对象:
import { createContext, useContext } from "react";
import { useUser, UserProfile } from "@auth0/nextjs-auth0/client";
type UserContextType = {
user: UserProfile | undefined;
error: Error | undefined;
isLoading: boolean;
};
const UserContext = createContext<UserContextType | null>(null);
export const UserProvider = ({ children }: { children: React.ReactNode }) => {
const { user, error, isLoading } = useUser();
return (
<UserContext.Provider value={{ user, error, isLoading }}>
{children}
</UserContext.Provider>
);
};
export const useUserContext = () => useContext(UserContext);
和下面的my_app.tsx:
import { AppProps } from "next/app";
import "../styles/globals.css";
import { UserProvider } from "@src/components/common/userContext";
export default function App({ Component, pageProps }: AppProps) {
return (
<UserProvider>
<Component {...pageProps} />
</UserProvider>
);
}
我一直收到的错误是:
Unhandled Runtime Error
Error: You forgot to wrap your app in <UserProvider>
虽然我确实把我的应用程序