DH의 개발 공부로그
[React, TypeScript] 리액트 + 타입스크립트에서 Props 전달하는 방법 - IntrinsicAttributes 오류 본문
React
[React, TypeScript] 리액트 + 타입스크립트에서 Props 전달하는 방법 - IntrinsicAttributes 오류
DeveloperDH 2023. 3. 14. 22:23728x90
IntrinsicAttributes 오류
IntrinsicAttributes 의 사전적 의미: 내장 속성, 고유 속성
타입스크립트와 리액트를 이용해서 간단한 투두리스트 예제를 만드는 연습을 하고 있는데,
하위 컴포넌트에 props
를 전달하는 과정에서 해당 오류가 발생하였고, 해결한 방법을 정리 해보겠습니다.
Type '{ toDo: ToDoItem; }' is not assignable to type 'IntrinsicAttributes'.
Property 'toDo' does not exist on type 'IntrinsicAttributes'.
// 해당 유형은 IntrinsicAttributes에 할당할 수 없습니다. 라는 형태의 오류
// 하위 컴포넌트의 전달하는 props의 타입을 지정을 해주지 않아서 나타나는 오류
해결방법
부모 컴포넌트 - ToDoList.tsx
const ToDoLIst: React.FC = () => {
return (
<ul>
{
toDoList.map((li) => {
return (
<ToDo toDo={li} key={li.id}/>
)
})
}
</ul>
);
};
export default ToDoLIst;
자식 컴포넌트 - ToDo.tsx
- interface로 타입지정 후 React.FC<Props>형태로 작업
// props의 해당 타입을 인터페이스로 지정
interface Props {
toDo: ToDoItem
}
const ToDo: React.FC<Props>= ({ toDo }) => {
const dispatch = useDispatch()
const handleClickDelete = (e: any): void => {
const id = parseInt(e.target.parentNode.id)
dispatch(dispatchDelete(id))
}
return (
<li id={`${toDo.id}`}>
{toDo.text}
<button onClick={handleClickDelete}>Del</button>
</li>
);
};
export default ToDo;
- 따로 타입 지정 없이 직접 타입 지정
const ToDo = ({ toDo }: {toDo: ToDoItem}) => {
const dispatch = useDispatch()
const handleClickDelete = (e: any): void => {
const id = parseInt(e.target.parentNode.id)
dispatch(dispatchDelete(id))
}
return (
<li id={`${toDo.id}`}>
{toDo.text}
<button onClick={handleClickDelete}>Del</button>
</li>
);
};
export default ToDo
참고
2. 리액트 컴포넌트 타입스크립트로 작성하기
<React에서 Typescript로 Props 사용하기>
타입스크립트 React props 전달하는 방법 및 IntrinsicAttributes 오류
[TS]Props Error(IntrinsicAttributes 오류)
728x90
'React' 카테고리의 다른 글
[React] 리액트 console.log() 두 번씩 찍히는 이유? - 렌더링이 두 번 되는 이슈 (0) | 2023.03.24 |
---|---|
[React] 리액트 Checkbox 문제 해결하기! - 전체 선택/해제 기능 (1) | 2023.03.20 |
[React] 리액트 라우터 - RouterProvider와 CreateBrowserRouter (0) | 2023.03.10 |
[React] Vite 사용하기! (0) | 2023.03.07 |
[React] React 개발환경 세팅하기 - React Router 설치 및 간단정리 (0) | 2023.03.01 |
Comments