Sometimes, we want to access a React context outside of the render function.
In this article, we’ll look at how to access a React context outside of the render function.
Access a React Context Outside of the render Function
To access a React context outside of the render function, we can use the useContext
hook.
For instance, we can write:
import React, { useContext } from "react";
const UserContext = new React.createContext({});
const Users = () => {
const contextValue = useContext(UserContext);
return <div>{JSON.stringify(contextValue)}</div>;
};
export default function App() {
return (
<UserContext.Provider value={{ user: "foo" }}>
<Users />
</UserContext.Provider>
);
}
We create the UserContext
by calling the React.createContext
method with a default context value.
Then in the Users
component, we call the useContext
hook with UserContext
to accxess the current value of UserContext
.
Then we render the contextValue
by returning it in the JSX content.
In App
, we add the UserContext.Provider
and set a value
for it.
Then we put the Users
component inside it so it can access UserContext
.
Now we should see {“user”:”foo”}
rendered from the Users
component.
Conclusion
To access a React context outside of the render function, we can use the useContext
hook.