useState에서 previous state인자를 사용하는 방법과 이전 값을 spread해서 사용하는 방법중 어떤 방법을 사용해야 할지 고민입니다

조회 51

profile picture

익명

5월 25일

const [imageArray, setImageArray] = useState([]); 혹시 어떤 배열안에 있는 객체요소 state변경을 할때, setState 인자인 previous state를 받아서 수정하는게 나은가요? 예) setImageArray((prev)=> [ …prev, {something}]) 아니면 spread로 새로운 배열로 복사해서 이것을 수정하고 setState에 넣는게 나은가요? 예) const copiedArray = […imageArray]; copiedArray. something something 작업 setImageArray(copiedArray);

구체적이고 정성스러운 질문에 Up 투표를 눌러주세요.

설명이 부족한 질문에 Down 투표를 눌러주세요. 커리어리가 질문자에게 수정을 요청할게요.

답변 1

손정현님의 프로필 사진

안녕하세요! 보통 전자를 많이 사용합니다. 이유는 stale closure 현상을 방지하기 위해서 써요! 후자는 setImageArray가 연속적으로 불리는 경우 의도치 않은 버그를 직면하게 될수도 있습니다. 참고해보세요 :) - https://dmitripavlutin.com/react-hooks-stale-closures/#4-state-closure-in-usestate - https://careerly.co.kr/qnas/2008 (유사한 질문)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직 개발자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직 개발자들의 명쾌한 답변을 얻을 수 있어요.