6.2.3 Context에서 유동적인 값 다루기
App 컴포넌트에서 useState를 사용해 관리하는 상태를 Provider로 넣어주면 값이 바뀔 때 useContext를 사용하는 컴포넌트 쪽에서도 리렌더링이 잘 발생할 것입니다. Provider를 사용하는 컴포넌트에서 Context의 상태를 관리하는 것보다는 Provider 전용 컴포넌트를 따로 만드는 것이 유지보수성이 더 높습니다. 특히 Context에서 다루는 로직이 복잡할 때는 전용 컴포넌트를 만드는 것이 좋습니다.
contexts/LogContext.js
import React from 'react'; import {createContext, useState} from 'react'; const LogContext (); export function LogContextProvider({children}) { const [text, setText] = useState(''); return ( <LogContext.Provider value={{text, setText}}> {children} </LogContext.Provider> ); } export default LogContext;