Skip to content

Instantly share code, notes, and snippets.

@brunosabot
Created January 29, 2022 21:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brunosabot/6b320eb96713eb906447d050c4d41230 to your computer and use it in GitHub Desktop.
Save brunosabot/6b320eb96713eb906447d050c4d41230 to your computer and use it in GitHub Desktop.
export const HelloApiContext = React.createContext({
values: { name: "" },
});
export function MyHelloApiProvider({ children }) {
const [serverData, setServerData] = useState({ name: "" });
const loadData = useCallback(() => {
fetch("https://brunosabot.dev/api/hello/")
.then((result) => result.json())
.then((data) => setServerData(data));
}, []);
useEffect(loadData, []);
return (
<HelloApiContext.Provider value={{ values: serverData }}>
{children}
</HelloApiContext.Provider>
);
}
export function MyRenderingComponent() {
const { values } = useContext(HelloApiContext);
return <div>{values.name}</div>;
}
/*
Usage:
<MyHelloApiProvider>
<MyRenderingComponent />
</MyHelloApiProvider>
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment