[문제 상황]
리스트의 값을 .map()하여 자식 요소를 여러개 렌더링함.
리스트의 값을 하나만 변경해도 해당 원소가 아닌 다른 원소를 참조하는 모든 값,
즉, 그 리스트를 참조하는 모든 자식 요소가 리렌더링 되는 상황 발생.
memo도 적용되지 않음.
[원인]
'자식 요소'는 '부모 요소' 안에서 선언되어 있었고, useSate()로 관리되는 변화가 있는 '부모 요소'의 값을 직접 사용하였다.
그대로 '부모 요소' 안에 선언해둔 채로 직접 '부모 요소'의 값을 사용하지 않고 props로 받도록 수정하였는데 그래도 의미가 없었다.
[문제 해결]
1 .자식요소를 별도의 파일로 만들어 컴포넌트화 함.
2. 부모요소에서 해당 자식 요소를 import 함
3. 필요한 모든 부모의 값들을 props로 자식요소에 전달
=> 즉, 자식 컴포넌트가 변동이 있는 부모의 모든 값을 props로 받게 해야함.
'오류' 카테고리의 다른 글
GSAP ScrollTrigger pin 오류 / 해결방안 추가 (2) | 2025.08.09 |
---|---|
ts project에 .js 형식 파일이 있을 경우 > Cannot write file {경로} because it would overwrite input file. (0) | 2025.05.27 |
배열의 원소 하나만 변경되어도 모든 자식 요소가 리렌더링되는 현상 (3) | 2025.05.20 |
Typescript 환경에서 image를 import 하지 못할 때 (0) | 2025.04.02 |
scss 파일 생성 시 자동으로 .css 파일과 .css.map 파일 생성될 때 (0) | 2025.04.02 |