나의 개발 성장일지

객체 state에 setstate를 할때 무한렌더링 본문

개인 프로젝트/쇼핑몰 만드는 과정

객체 state에 setstate를 할때 무한렌더링

qkq5821 2022. 12. 28. 03:10

문제점

 

1.객체 state를 변경하기위해 setstate에 객체를 넣는다

2.객체를 넣으면 컴포넌트 update마다 주소값이 바뀐다.

3.주소값이다르니까 계속 새로운 객체로인식한다

4.무한으로 setstate를 실행한다.

 

해결방법추리해보기

 

1.컴포넌트가 update되어도 객체값이 보존이 되어있다면 어떨까

2.setstate에 객체를 넣어도 주소값이 update전과 후가 같으므로 setstate가 동작하지않는다.

3.컴포넌트 update가되어도 저장이되어있으려면 컴포넌트와 수명을 같이하는 주소값을 만들면된다.

 

근본으로 들어가보면

 

1.장바구니페이지에 들어오면useeffect에 유저정보와 배열의 길이를 받아오는것이 1번이상으로 해야할일인가

2.useeffect에 컴포넌즈 mount될떄 1번만 실행하면되는일이다