[FE] refactor: 리뷰 url 생성 폼의 setState 전달 및 비밀번호 에러 메세지 렌더링 방식 변경 #996
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 어떤 기능을 구현했나요 ?
setState 전달 방식 수정
비밀번호 에러 메세지 디스플레이 방식 변경
🔥 어떻게 해결했나요 ?
handleInputChange
라는 setState의 Wapper 함수를 통해 setState를 전달합니다.📝 어떤 부분에 집중해서 리뷰해야 할까요?
📚 참고 자료, 할 말
setState의 Wapper 함수 필요성에 대해 모호하게 넘어갔던 것 같은데요, 공부한 내용을 공유합니다!
setState를 왜 자식에게 전달하면 안 되는가?
여러분이 짐작하시는 그 이유가 맞습니다. 상태 관리 복잡성/예측 불가능성 증가, 상태 업데이트 로직의 캡슐화 불가능 등등이 있습니다.
Wrapping을 하면 뭐가 달라지나?
하지만 Wrapping을 해도, 결국 상태 업데이트를 자식에게 맡기는 건 같기에 큰 차이가 있는지 궁금했습니다.
결론은 상태 변경 로직의 책임을 부모가 진다는 점에서 큰 차이가 있었습니다.
Wapper 함수를 정의하면, 상태 업데이트 로직을 자식에게 위임하지 않고 자신이 갖고 있을 수 있다는 데 의의를 두는 것 같습니다.
자식은 단순히 부모에게 받은 함수를 트리거하기만 합니다.
하지만 이 코드에서는 부모가 자식에게 받은 상태를 추가로 가공하지 않고 그대로 사용하기 때문에 Wrapper의 의미가 크지는 않다고 생각합니다.
그래서 의미론적 & 확장성 면에서 이 코드를 유지할지, 가독성을 위해 원래대로 돌릴지 고민중입니다!
코드 몇 줄만 추가됐을 뿐 가독성이 크게 나빠진 건 아니라 아마 유지할 듯 싶긴 합니다.
더 복잡한 상태 업데이트 로직이 들어오면 Wrapper를 사용하는 게 확실히 좋을 것 같다는 의견입니다~