Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- css 꿀팁
- js CRUD
- 국비지원
- 부트캠프
- 부트캠프 취업후기
- map
- sqld 55회
- Filter
- sqld 자격증 시험
- 2024 sqld
- foreach
- promise 비동기처리
- 퍼블리셔 이직후기
- 성능개선
- reduce
- 패스트캠퍼스
- 프론트엔드개발자
- TypeScript
- 프론트엔드부트캠프후기
- 리액트오류
- 국비지원취업
- Where
- 야놀자x패스트캠퍼스
- react hook
- github
- firebase rules
- 야놀자 fe 1기
- 패스트캠퍼스 부트캠프
- Firebase
- git
Archives
- Today
- Total
Tech is created to fix problem
[React] 쌩초보가 반드시 겪는 오류 : 즉시실행함수 본문
반응형

Q. index.js 에서 ReactDOM이 뭘까?
ReactDOM 은 라이브러리이다. 돔 조작하는 라이브러리
React 도 사용자 UI 를 만들기 위한 라이브러리,
React-Router-Dom 도 라우팅을 관리하기 위한 라이브러리,
Styled-component 도 CSS-in-JS 라이브러리
알고보면 리액트는 전부 다 라이브러리의 조합이다,,
버튼에 이벤트를 걸어줄 때,
() => 화살표 함수 말고 즉시실행함수로 했더니
렌더링 중에 상태 업데이트를 피하라는 오류가 났다!!
예전에 리액트 배웠을 때도, 항상 처음에 접했던 오류같다.
<button className='delete-btn' onClick={handleDelete(expense.id)}>삭제</button> //즉시실행(에러)
<button className='delete-btn' onClick={() => {handleDelete(expense.id)}}>삭제</button>
react-dom.development.js:86 Warning: Cannot update a component (`App`)
while rendering a different component (`ExpenseItem`).
To locate the bad setState() call inside `ExpenseItem`,
follow the stack trace as described in
https://reactjs.org/link/setstate-in-render
at ExpenseItem (http://localhost:3000/static/js/bundle.js:353:3)
at div
at ExpenseList (http://localhost:3000/static/js/bundle.js:469:3)
at App (http://localhost:3000/static/js/bundle.js:36:82)
즉시실행함수를 사용하면 계속해서 setState 변경이 일어나서, 렌더링 중에도 계속적으로 호출되는 문제가 나타난다.
호출이 되면 렌더링이 되고 렌더링이 되면 또 호출이 되는,, 무한루프로 빠지기 때문에 반드시 익명함수로 작성해주어야 한다.
반응형
'React.js' 카테고리의 다른 글
[프로젝트] Wiki 프로젝트 리팩토링 리뷰 (0) | 2023.11.05 |
---|---|
[React] ⛔️브라우저 뒤로가기⛔️ 이전 History가 아닌 Home으로 이동하기 (1) | 2023.10.06 |
[React] useParams, useEffect, 중첩라우팅 (0) | 2023.09.26 |
React 기초 애매하고 사소한 개념 정리 (0) | 2023.09.26 |
리액트 설치 시 패키지 및 번들러의 기본적인 개념 정리 (0) | 2023.09.26 |