본문 바로가기

React/errors4

[error] Component definition is missing display name useMemo 와 유사한 기능인 React 라이브러리의 memo 함수를 사용해보던 중 일어난 에러다 eslint 에서 또 한소리 하셨다 에러 원인 아래의 예처럼 React.memo 를 변수 Child에 저장하고 해당 변수를 console.log 로 찍어보면 const Child = memo(() => { console.log("재랜더링"); return 자식이래요; }); console.log(Child); 요런 객체를 확인 가능하다 memo 를 사용하면 위 그림의 displayName 속성에 memo 함수의 인자로 넣은 익명함수들이 들어가게 된다! 근데 왜인지 모르겠지만 displayName 의 값은 클릭해서 확인해보면 undefined 로 뜨고 에러가 나온다 해결 방법 아래의 코드를 추가해준다 Chi.. 2022. 12. 7.
[error] cannot update a component ('a') while rendering a different component ('b') 요건 정확히는 warning 이지만 eslint 사용자에게는 뭐 에러나 마찬가지다... 해결해야만 한다 해결도 해결이지만 왜 이 경고가 떴는지를 꼭 알고 넘어가자 에러 원인 하나의 상태에 여러 컴포넌트가 동시에 접근하여 상태가 꼬일수 있으니 해당 두 컴포넌트의 동시 랜더링은 안됩니다! 랜더링 후에 상태를 조작하여 조작한 상태를 바탕으로 랜더링이 되도록 상태 조작은 랜더링 이후로 미뤄주세요! 하나의 상태를 공유하는 두 컴포넌트가 랜더링 될 때, 한 컴포넌트에서 상태 변경이 일어나면 변경된 상태를 가지고 다른 컴포넌트도 동시에 랜더링 할 수 없으므로, 되도록 랜더링이 끝난 다음에 문제의 상태를 조작해서 다른 컴포넌트가 다음 순서로 랜더링 되도록 해주라는 warning 이다. - 내멋대로 이해입니당! 해결 방.. 2022. 12. 4.
[error] Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infinite loop. 랜더링 할때마다 상태가 변해서 무한 랜더링이 일어나는 에러 에러 원인 특정 이벤트 발생 시, 상태 조작이 아니라, 그냥 매 랜더링마다 상태 조작이 일어나고 있다는 에러다 onClick 등에 콜백으로 상태 조작을 걸지 않고 바로 상태 조작 함수를 넣었거나, 이벤트와 상관없이 매 랜더링마다 항상 참인 조건으로 상태 조작 함수를 넣어서 매 랜더링 마다 상태 조작으로 인해 랜더링 되어 랜더링 무한루프에 빠진 것이다 해결 방법 onClick 에 상태 조작 함수가 콜백 함수로 제대로 들어갔는지 확인, 항상 true 가 성립하는 조건에서 상태 조작 함수를 넣었는지 확인 특정 조건, 특정 이벤트에서만 상태 조작 조건문이 동작하도록 수정하자 2022. 12. 4.
[error] ~ is missing in props validation react 에서 하위 컴포넌트에 props 를 이용해서 데이터를 전달하려던 중, 그-컴포넌트 is missing in props validation 해당 컴포넌트 파일에서 해당 props 를 사용하는 부분에서 모두 위와 같은 에러가 떴었다 에러 원인 props 의 타입 검증이 필요하다는 의미이다 eslint 를 사용할 때에 나오며, 오류를 막기 위해 props의 더 정확한 타입을 요구하는 것이다 해결방법 yarn add prop-types 로 라이브러리를 설치 후, props 를 받는 해당 컴포넌트 정의 파일 내에서, import PropTypes from 'prop-types' 임포트 해 온 후, 해당 컴포넌트와 같은 최상위 레벨에서(=컴포넌트 밖에서) 아래와 같이 props 타입을 정의해주면 된다 대.. 2022. 11. 30.