// context.js
import { createContext, useContext } from "react"
export const ThemeContext = createContext("light") // 기본값: light
// App.jsx
<ThemeContext.Provider value="dark">
<MyComponent />
</ThemeContext.Provider>
// MyComponent.jsx
const theme = useContext(ThemeContext) // "dark" 반환!
// store.js
import { createContext, useRef } from "react"
export const StoreContext = createContext(null)
export function StoreProvider({ children }) {
const store = useRef(createStore()).current
return (
<StoreContext.Provider value={store}>
{children}
</StoreContext.Provider>
)
}
// 사용 예시
<StoreProvider>
<SomeComponent />
</StoreProvider>
// SomeComponent.jsx
const store = useContext(StoreContext) // zustand store에 접근 가능
실무에서는 "Provider로 감싸주지 않으면 해당 상태/스토어/설정에 접근할 수 없다"는 점을 반드시 기억해야 합니다!
Provider는 Context(또는 상태/스토어)를 하위 컴포넌트 트리에 공급하는 React 컴포넌트이다.
Provider로 감싸줘야 자식 컴포넌트에서 안전하게 useContext나 관련 훅으로 데이터를 사용할 수 있다.
React ‘Invalid Hook Call’ 오류와 상태/데이터 관리 패턴 실무 사례, 원인, 해결 (0) | 2025.07.01 |
---|---|
React - useQueryClient(). invalidateQueries (0) | 2025.06.08 |
React - useQuery (0) | 2025.06.08 |
React - useContext를 사용하기 전과 후의 구조 비교 (0) | 2025.06.08 |
React - useCallback을 활용한 함수 최적화 전략 (0) | 2025.06.07 |