Skip to content

Instantly share code, notes, and snippets.

@o-az
Created August 2, 2021 14:45
Show Gist options
  • Save o-az/8eb01f0f808ea958023ffbf8ad9be75e to your computer and use it in GitHub Desktop.
Save o-az/8eb01f0f808ea958023ffbf8ad9be75e to your computer and use it in GitHub Desktop.
Simple React Context
import React from "react";
import ReactDOM from "react-dom";
// set the defaults
const LanguageContext = React.createContext({
language: "en",
setLanguage: () => {}
});
const LanguageSwitcher = () => {
const { language, setLanguage } = React.useContext(LanguageContext);
return (
<button onClick={() => setLanguage("jp")}>
Switch Language (Current: {language})
</button>
);
};
const App = () => {
const [language, setLanguage] = React.useState("en");
const value = { language, setLanguage };
return (
<LanguageContext.Provider value={value}>
<h2>Current Language: {language}</h2>
<p>Click button to change to jp</p>
<div>
{/* Can be nested */}
<LanguageSwitcher />
</div>
</LanguageContext.Provider>
);
};
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment