← React Beginner Questions - Set 3 Q23
React Beginner Questions - Set 3
Context removes prop drilling: a value is published once and read anywhere below, without passing it through every intermediate component.
import { createContext, useContext, useState } from 'react';
const ThemeContext = createContext('light');
function Toolbar() {
const theme = useContext(ThemeContext); // no props involved
return <button className={theme}>Save</button>;
}
export default function App() {
const [theme, setTheme] = useState('light');
return (
<ThemeContext.Provider value={theme}>
<Toolbar />
<button onClick={() => setTheme(t => (t === 'light' ? 'dark' : 'light'))}>
Toggle theme
</button>
</ThemeContext.Provider>
);
}