새로고침 시 렌더링이 계속 2번 발생합니다
안녕하세요 6-12까지 수강한 상태입니다. 강의를 따라해서 다른 부분은 다 강의대로 똑같이 진행되는데 저는 사이트를 새로고침시 여전히 렌더링이 2번 진행됩니다. 전에 컴포넌트 id를 확인했을 때 0부터가 아닌 20부터 id가 시작되는 걸 확인했어서 그것과도 연관이 있는 것 같은데 정확한 원인을 도무지 못 찾겠어서 질문드립니다ㅠㅠ
아래는 코드샌드박스 링크입니다. 감사합니다!
https://codesandbox.io/s/ecstatic-firefly-87mcs4?file=/src/App.js
답변 2
0
안녕하세요 이정환입니다.
두번 렌더링이 진행되는 이유는 src/index.js의 <React.StrictMode> 컴포넌트 때문입니다. 이 컴포넌트는 리액트 앱 내부의 잠재적인 문제를 확인하기 위해 사용되는 컴포넌트로 의도적으로 렌더링을 두 번 발생시켜 앱을 점검합니다.,
따라서 index.js를 아래와 같이 수정해주시면 한번만 렌더링 되는 것을 확인하실 수 있습니다.

0
안녕하세요, 인프런 AI 인턴이에요. 문제를 해결하기 위해 코드를 확인해보겠습니다.
코드를 살펴보니, App.js 파일에서 Counter 컴포넌트를 2번 호출하고 있어서 렌더링이 2번 발생하는 것 같습니다. 첫 번째 호출은 Counter 컴포넌트를 단일 컴포넌트로 사용하고 있고, 두 번째 호출은 Counter 컴포넌트를 리스트로 사용하고 있습니다.
렌더링이 2번 발생하는 이유는, 리스트로 사용되는 컴포넌트는 각각 고유한 key prop을 가져야 하는데, 현재 코드에서는 key prop을 지정하지 않고 있습니다. 따라서 React는 각 컴포넌트를 구분하지 못하고 2번의 렌더링이 발생하게 됩니다.
이 문제를 해결하기 위해서는 Counter 컴포넌트를 사용할 때 key prop을 지정해야 합니다. 예를 들어, Counter 컴포넌트를 리스트로 사용할 때, key prop에 고유한 값을 할당하면 됩니다. 예를 들어, key={id} 와 같이 할당할 수 있습니다. 이렇게 하면 각 컴포넌트가 고유한 key 값을 가지게 되어 문제가 해결될 것입니다.
간단한 예시로 수정된 코드를 제공해드리겠습니다.
import React, { useState } from "react";
const Counter = ({ id }) => {
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
};
const decrement = () => {
setCount(count - 1);
};
return (
<div>
<h2>{`Counter ${id}`}</h2>
<p>{count}</p>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
);
};
const App = () => {
const counterIds = [1, 2, 3, 4, 5];
return (
<div>
{counterIds.map((id) => (
<Counter key={id} id={id} />
))}
</div>
);
};
export default App;
아래 링크에 수정된 코드가 포함된 CodeSandbox를 제공해드렸으니 확인해보시고, 문제가 해결되었는지 확인해주세요.
이렇게 수정하면 렌더링이 2번 발생하는 문제가 해결될 것입니다. 추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!
useEffect와 lifecycle문의
0
27
2
프론트엔드 학습 수준 문의
0
39
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
48
2
데이터 로딩중 화면만 계속 나와요!!
0
55
2
퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요
0
79
2
이후의 커리큘럼 문의
0
102
2
실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.
0
50
2
최적화 관련 질문있습니다 (useMemo 등)
0
84
3
프로바이더 컴포넌트의 위치는 어떤 기준인가요?
1
82
3
Date 객체에 관련하여 질문드립니다.
0
85
2
리액트 개정판 교재 질문
0
60
2
예제코드가 안나와요!
0
78
2
select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com
0
108
2
onMouseEnter 관련 문의 드립니다
0
92
3
배열의 렌더링 관련 질문 드립니다.
0
73
2
2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.
0
113
2
TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?
0
136
2
useCallback 적용한 onCreate, onUpdate, onDelete 함수..
0
69
1
vs code 자동완성관련 문의
0
113
2
91강 useEffect내에서 상태변화함수 호출시 발생하는 에러
1
179
2
87강 필터 함수 질문
0
69
2
useRef, useState count 비교
0
67
2
안된다고했던 이유가 무엇이었는지 모르겠습니다
0
90
2
85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.
0
75
2





