반응형
배경
useEffect 를 이용해 한번만 함수를 처리하게 하려고 했다.
하지만 왜인지 모르게 자꾸 렌더링이 두번씩 되어 함수가 두번 실행이 되었다.
해결
https://youngble.tistory.com/175
[React] useEffect 2번 실행되는 이유
다음과 같이 useEffect를 사용하여 jQuery메서드 on 으로 해당 요소를 이벤트 등록을 해주었다. 그런데 해당 태그를 눌러 이벤트가 발생하면 2번이 실행돼서 왜이러지? 찾아보니깐 useEffect부분에서 두
youngble.tistory.com
다음 글을 보면 index.js 의 React.StrictMode 때문이라고 한다.
import React from 'react';
function ExampleApplication() {
return (
<div>
<Header />
<React.StrictMode>
<div>
<ComponentOne />
<ComponentTwo />
</div>
</React.StrictMode>
<Footer />
</div>
);
}
개발모드에서만 작동되는 StrictMode 는 다음과 같은 효과를 준다고한다.
- 안전하지 않은 생명주기를 사용하는 컴포넌트 발견
- 레거시 문자열 ref 사용에 대한 경고
- 권장되지 않는 findDOMNode 사용에 대한 경고
- 예상치 못한 부작용 검사
- 레거시 context API 검사
- Ensuring reusable state
https://ko.legacy.reactjs.org/docs/strict-mode.html
Strict 모드 – React
A JavaScript library for building user interfaces
ko.legacy.reactjs.org
문서에 들어가면 더 자세히 볼 수 있다.
결론은 index.js React.StrictMode 를 제거하면 한 번만 호출 된다.
반응형
'Error' 카테고리의 다른 글
vue3-kakao-map 오픈소스 기여해보기 [실패] (1) | 2024.11.25 |
---|---|
[Pyinstaller] How to generate an executable on Linux for Windows? (2) | 2023.06.02 |