peer-42seoul / mission-peerflow-FE

This is simple website frontend mission for searching 42 subjects.
https://mission-peerflow-fe.vercel.app
1 stars 1 forks source link

Doc: 메인 페이지 작업 (2) #13

Closed hyeon81 closed 1 year ago

hyeon81 commented 1 year ago

React hook useContext

const GnbContext = React.createContext(null) export default GnbContext


* 전역변수로 쓸 값 생성 및 GnbContext.Provider로 전역변수로 설정하기 (MainLayout.tsx) - gnb, setGnb를 내려보냅시다

const [gnb, setGnb] = useState<{ title: string back: boolean add: boolean }>({ title: '전체 보기', back: false, add: true, })

return ( <GnbContext.Provider value={{gnb, setGnb}}>

{children}
</GnbContext.Provider>

)


Context.Provider = value prop을 받아서 이 값을 하위에 있는 컴포넌트에게 전달함
* 특정 페이지에 접근할때마다 title을 세팅하기 - MainPage 접근했을 경우

const { setGnb } = useContext(GnbContext)

useEffect(() => { setGnb({ title: '전체 보기', back: false, add: true }) }, [])


이렇게 하면 어떤 페이지에 접근했냐에 따라 title과 뒤로가기버튼, 새글 쓰기 버튼을 알맞게 세팅해줄 수 있다.