• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

boards 수정 1편에서 useState() 초기값

24.01.24 12:33 작성 조회수 124

0

스크린샷 2024-01-23 오후 9.07.52.png이렇게 초기값을 설정 해주지 않았을 때, 하나의 항목만 수정하고 수정하기 버튼을 누르면 다른 항목들은 그 전 내용 그대로 띄워졌는데 그 이유가 궁금해요 !굳이 boards 수정 2편에서 한 방법이 아니더라도 이렇게 하면 문제가 되는 걸까요 ? 초기값을 설정 안해주면 안되는 이유가 있나요 ㅜㅜ강사님께서 그냥 여기 초기값을 "" 빈문자열로 바꾸고 다시 실행하시기만 하셔서 왜 이 방법을 쓰면 안되는지, boards 수정 2편의 방법과는 무슨 차이가 있는지 잘 모르겠습니다 ..!

답변 1

답변을 작성해보세요.

0

안녕하세요! 냐냐님!

예리하시네요!

사실 질문하신 방법 자체가 boards 수정 2편의 방법과 동일한 원리랍니다!^^

 

boards 수정 2편에서는 문자열이 변경되지 않은 변수들에 대해서는 업데이트 요청 목록에서 제외시키는 방법을 사용했었죠?!
냐냐님의 질문과 같이 초기값을 설정하지 않은 경우에는, 기본 값이 undefined 이므로 자동으로 업데이트 요청 목록에서 제외되었을 뿐이랍니다!
다시 말해 동일한 원리로 동일한 결과를 받게 된 것이에요!

 

그렇다면, 어떤 방법을 사용하면 될까요?!
초기값이 없는 상황이라면 어차피 undefined로 제외될 것이므로 그냥 사용하셔도 되지만,
초기값이 있는 상황이라면 직접 변경되지 않은 필드에 대해서 제외시켜 주셔야 합니다!

본 예제는 간단한 예제이므로 두 방법이 동일하지만,
일반적으로 실무에서 복잡한 상황에서는 초기값만을 모아 담는 상자(state)를 사용하므로 이러한 경우에는 수정 2편이 도움이 될 수 있겠네요!^^