<PeopleProfileEditPage/> 컴포넌트를 <TechStackProvider/> 로 한번 더 감싼다
가장 간단하게 해결할 수 있는 방법이라고 생각되지만, 더 많은 ContextProvider 가 페이지 컴포넌트를 감싸야 할 때를 고려하면,
코드의 가독성이 떨어질것으로 생각됩니다
Router 단에서 전역에 <TechStackProvider/> 로 감싼다
전역에서 관리할 수 있어, 따로 페이지를 Provider 로 감싸지 않아도 된다는 장점이 있습니다
Redux 를 사용하지 않고 Context API 로 뺀 의미가 사라진다는 점과, 해당 Provider 를 사용하지 않는 컴포넌트가 마운트 시에도
Context 가 추가적인 메모리 공간을 차지한다는 단점이 있습니다
고차 컴포넌트를 사용해 Provider 로 감싼 컴포넌트를 리턴하는 withProviders HOC 를 구현한다
✨ 구현한 기능
AccordionProvider
와TechStackProvider
컴포넌트의 children props 를 optional 로 변경했습니다Providers[]
로 감싼WrappedComponent
를 리턴하는withProvider
고차 컴포넌트를 구현하였습니다TextArea
컴포넌트에서 ref 를React.forwardRef
로 HTMLTextAreaElement 로 전달하도록 변경하였습니다ProfileHashTag
컴포넌트에서 내부적으로만 관리되던 입력된 해시태그 상태를 React Context 를 사용해 관리하도록 변경하였습니다📢 논의하고 싶은 내용
ContextProvider
를 페이지 단에서 처리할 더 좋은 방법이 있다면 의견 제시해주시면 감사드리겠습니다🎸 기타
PeopleProfileEditPage
에서 학교, 전공 ... 등의 정보를 가져오고,TechStackProvider
내부에 있는 Context 를 가져와야 합니다PeopleProfileEditPage
내부에 감싸져 있어, 페이지 단에서 해당 Context 를 가져올시useTechStack 은 TechStackProvider 내부에서 사용되어야 합니다
에러를 throw 합니다<PeopleProfileEditPage/>
컴포넌트를<TechStackProvider/>
로 한번 더 감싼다<TechStackProvider/>
로 감싼다withProviders
HOC 를 구현한다💪 추가적인, 더 좋은 방법이 있다면 함께 고민하고 의견 나눠봅시다