useContext() not working in Layout.jsx
Answered
Caribbean Elaenia posted this in #help-forum
![Avatar](https://cdn.discordapp.com/embed/avatars/3.png)
Caribbean ElaeniaOP
When I use useContext() inside layout.jsx, it returns me an error: TypeError: reactWEBPACK_IMPORTED_MODULE_4.useContext(...) is undefined.
I'm not sure why's that. Assistance is needed and appreciated!
I'm not sure why's that. Assistance is needed and appreciated!
![Image](https://cdn.discordapp.com/attachments/1263472055886680066/1263472056759222334/image.png?ex=669a5b8c&is=66990a0c&hm=ecb45fdfc0c2735a9ebdc5848fa4a99474008363dfe77b851b7746c2ff8ecb51&)
![Image](https://cdn.discordapp.com/attachments/1263472055886680066/1263472057056886804/image.png?ex=669a5b8c&is=66990a0c&hm=ce48cd2c0312032548bd87a9684f524f98f8bf406f970632eb97ed2dff5c9ebe&)
Answered by Jesse677
This is how I implement it.
// layout.tsx
export default async function Layout({ children }) {
const user = getUserFromHeaders();
return (
<UserStateProvider user={user}>
{children}
</UserStateProvider>
);
}
// UserStateProvider
"use client";
const UserContext = createContext({} as UserType);
export const useUser = () => useContext(UserContext);
const UserStateProvider = ({ children, user }: PropsType) => {
return <UserContext.Provider value={user}>{children}</UserContext.Provider>;
};
export default UserStateProvider;
12 Replies
![Avatar](https://cdn.discordapp.com/embed/avatars/3.png)
Caribbean ElaeniaOP
@Jesse677
![Avatar](https://cdn.discordapp.com/avatars/855485422933901322/a55ad8371c65f98866310b72fdf17873.webp?size=256)
This is how I implement it.
// layout.tsx
export default async function Layout({ children }) {
const user = getUserFromHeaders();
return (
<UserStateProvider user={user}>
{children}
</UserStateProvider>
);
}
// UserStateProvider
"use client";
const UserContext = createContext({} as UserType);
export const useUser = () => useContext(UserContext);
const UserStateProvider = ({ children, user }: PropsType) => {
return <UserContext.Provider value={user}>{children}</UserContext.Provider>;
};
export default UserStateProvider;
Answer
![Avatar](https://cdn.discordapp.com/embed/avatars/3.png)
Caribbean ElaeniaOP
I think it's fixed now
💀
I'm not sure how
Oh I know why
This:
export const ThemeContext = createContext();
I have to add an array
export const ThemeContext = createContext({});
Like this
It worked fine now
thanks