티스토리 뷰
forwardRef 관련 Component definition is missing display name(react/display-name) 에러
hello-world 2022. 8. 24. 20:03forwardRef 관련 Component definition is missing display name(react/display-name) 에러
React.forwardRef<HTMLInputElement>((props, ref) ... )
forwardRef 역활
React.forwardRef 는 렌더링에 사용될 함수를 인자로 받는데
React는 이 함수를 두 개 인자 props와 ref를 사용하여 호출하고, 이 함수는 React 노드를 반환.
하는 게 주요 맹점이다.
React 를 사용하다보면 ref 를 자식 컴포넌트에 넘겨서, 그 내부 HTML 엘리먼트에 접근할 수 있게 해줘야하는 경우가 발생.
이때 사용하게 되는 것이 React.forwardRef
타입스크립트를 사용하지 않는 경우 위 방법은 정상적으로 동작.
하지만, 타입스크립트를 사용하게 되면 위 코드는 Component definition is missing display name 에러가 발생한다.
typescript 환경에서 forwardRef() 함수를 호출시 인자값으로 익명 함수로 전달하게 되면
컴포넌트의 이름이 생성되지 않게 된다고 한다.
리엑트 개발시 브라우저 개발자도구를 보면 아래 그림처럼 <div class="App-link css-qiobeq-BuildBtnComp">
라고 되어 있는 부분에 BuildBtnComp 라는 이름이 바로 컴포넌트의 이름이다.
바로 저 부분이 생성 안 된다는 것을 추측해 볼 수 있다.

암튼 이 때문에 발생하는 에러이기에 그냥 간단히 익명 함수가 아닌 기명 함수로 인자를 전달하면 된다.
익명함수 : () =>{...} / ( function(){...} )()
기명 함수 : function test(){ ... }
암튼 결론은 아래와 같이 해결 했다.
//또는 function BuildBtnComp(){ ... }
const BuildBtnComp=()=>{....}
const Button: ButtonType = forwardRef( BuildBtnComp );
Component definition is missing display name for forwardRef
I was following this tutorial on using React.forwardRef, where make this component: import React from "react"; const Search = React.forwardRef<HTMLInputElement>((props, ref) => ...
stackoverflow.com
'Programming language > Reactjs' 카테고리의 다른 글
inter 키워드 ( Typescript ) (0) | 2022.08.31 |
---|---|
JSX.IntrinsicElements 이란 (0) | 2022.08.26 |
'React' must be in scope when using JSX 에러?? (0) | 2022.08.24 |
Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'. (0) | 2022.07.27 |
React.StrictMode( Strict 모드 ) (0) | 2022.06.09 |
- Total
- Today
- Yesterday
- IntrinsicElements
- svg모션
- Intrinsic
- interceptors
- react
- 내장요소
- 아이콘 폰트 만들기
- 앵귤러
- 태그
- git checkout -b
- svg icon font
- 리프래시토큰
- RefreshToken
- React.StrictMode
- 반복문
- git
- Angular
- Vue3
- for of 구문
- 코도바
- Aptana
- icon font
- svg 폰트
- vue-router
- anime.js
- cordova
- CSS
- 자바스크립트
- JsDoc
- react-router-dom
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |