해결된 질문
작성
·
220
답변 3
2
2
안녕하세요
말씀하신대로 속성값은 잘 바뀝니다
문제는 상태값인데요
UserDetail 안에서 사용자의 닉네임을 변경하는 UI 가 있었다고 가정해볼게요
그러면 input 요소가 있을 것이고 키보드로 입력하는 값을 관리하는 newNickname 이라는 상태값이 있을겁니다
key 속성이 없다면 newNickname 은 초기화되지 않아서 문제가 될 수 있습니다
0
1. key의 변동이 있어야 자식 컴포넌트가 unMount후에 다시 mount되서 newNickName 상태값이 초기화된다고 이해하면 될까요?
2. state가 업데이트되면 컴포넌트가 unMount된 후 다시 mount되도 최신의 state를 유지하는 경우를 보는 데
해당 컴포넌트에 key값을 새로 주면 unMount->mount시에 모든 상태값이 초기화되는 걸로 이해하면 될까요?
답변 너무 감사합니다.
1. state가 변경된 후 컴포넌트가 리렌더링 되는 것은 컴포넌트가 unMount후에 다시 mount되는 과정이라 생각하면 될까요?
2. 이 때(컴포넌트 리렌더링시), 키 값이 변하면 state가 초기화. 그렇지 않으면 변경된 state를 유지하고 있다고 생각하면 될까요?
항상 강의 너무 감사합니다.
1번: 아니요. unmount 는 돔 요소가 삭제되는거라고 생각하시면 됩니다. 리렌더링은 업데이트하는 과정이므로 돔 요소를 삭제하지 않고 기존 것을 재활용합니다
2번: unmount 되면 state 가 초기화 된다고 생각하시면 될 것 같습니다
안녕하세요
1번: 맞습니다
2번: 첫 줄에서 말씀하신 내용은 이해를 못했습니다. 두 번째 줄에서 물어보신건 맞습니다
key 를 입력하지 않거나 key 값이 변하지 않으면 unmount 되지 않으므로 기존 state 가 계속 유지됩니다