- useContext
- useContext 예제
- context 객체(React.createContext에서 반환된 값)을 받아 그 context의 현재 값을 반환합니다.
- context의 현재 값은 트리 안에서 이 Hook을 호출하는 컴포넌트에 가장 가까이에 있는 <MyContext.Provider>의 value prop에 의해 결정됩니다.
darkContext.ts
import { createContext } from "react";
export const DarkContext = createContext({});
import { useState } from "react";
import Page from "./component/Page";
import { DarkContext } from "./context/darkContext";
function App() {
const [isDark, setIsDark] = useState(false);
return (
<DarkContext.Provider value={{ isDark, setIsDark }}>
<Page></Page>
</DarkContext.Provider>
);
}
export default App;
import { useContext } from "react";
import { DarkContext } from "../context/darkContext";
export interface IDarkContext {
isDark: boolean;
setIsDark: React.Dispatch<React.SetStateAction<boolean>>;
}
const Header = () => {
const { isDark } = useContext(DarkContext) as IDarkContext;
return (
<header
className="header"
style={{
background: isDark ? "black" : "lightgray",
color: isDark ? "white" : "black",
}}
>
<h1>Welcome 홍길동!</h1>
</header>
);
};
export default Header;
별코딩님 - React Hooks에 취한다 - useContext + Context API | 리액트 훅스 시리즈