state의 초기화 값

steyu·2023년 1월 6일
0

문제

상태 값을 []로 초기화해서 Form이 준 value와 다르다.
newValue [] != Form이 준 value
=> trigger onChange

원하는 시나리오

이제 막 렌더링 됬을때(초기) onChange를 트리거 할 필요가 없다 (바로 value값을 주면 된다)

방법

=> 상태 값이 초기값일때 return;을 시킨다

문제

위 방법대로하면 backspace를 눌러서 상태값이 []가 될때도 return;이 된다
=> 그럼 안 된다

방법

초기값일때 []와 backspace를 눌러서 변하는 []를 구별해야한다
=> 초기값을 []가 아닌 undefined로 한다.
=> 초기값이 undefined일때는 return해서 onChange를 트리거 하지 않는다

결론

초기값을 undefined로 해서 []일 때와 차별점을 준다


파생된 궁금점

두개의 useEffect 는 어떤 순서대로 실행이 될까
=> 실험결과 처음거가 실행이 완료된 후 다음거가 실행이 된다

setState안의 내용은 그래서 정확히 언제 바뀌는걸까

0개의 댓글