[React] state를 직접 수정하면 안되는 이유

cho yunsu·2021년 7월 7일
0
  1. setState()는 비동기함수이기 때문에 여러번 state를 직접수정하여 업데이트할경우 이전값이 반영되기전에 새로운값이 덮어씌워질수 있다. this.setState((curr)=>return({count:curr.count+1})) 이런식으로 setState안에는 콜백함수가 들어가야한다. 직접 state를 변경하는 것이 더 직관적이지만(에러는 안남) 이전state값을 사용할 수 없는 경우가 있다.(비동기적처리의 경우)
  2. PureComponent는 shallow comparison 즉, ref값으로 비교하기 때문에 state를 직접 변경하여 동일한 오브젝트를 새로운 state로 전달할 경우 render()를 호출하지 않는다. 즉, 업데이트가 안된다.
profile
Growing Developer!!

0개의 댓글