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
- 프로그래머스 프론트엔드 데브코스
- 리스트 렌더링
- 고양이 사진 검색기
- SCSS use
- 폼 입력 바인딩
- netlify redirect
- intersection opserver
- react next
- vue mixin
- 다른컴퓨터에서 git사용
- vue 지역 컴포넌트
- nextjs사용법
- flex
- 프로그래머스 K_Digital Training
- 리액트
- postcss
- 프로그래머스 데브코스 프론트엔드
- 이벤트 수식어
- KDT 프로그래머스 데브코스 프론트엔드
- git 같은계정 다른 컴퓨터
- 쌓임맥락
- SCSS extend
- Spacer
- KDT 프로그래머스
- SCSS import
- Vue
- vue 이벤트 수신
- vuex map
- 프로그래머스 데브코스
- SCSS forward
Archives
- Today
- Total
혼자 적어보는 노트
[React] Prop-types 본문
Prop-types란
전달받은 props가 내가 원하는 props인지 확인해주는 package.
구성 요소에 전달된 속성의 의도한 유형을 정해줄 수 있다.
구성요소에 전달된 데이터를 확인하고 일치하지 않는 경우 개발 단계에서 경고를 띄워 줌.
npm i prop-types //설치
import PropTypes from "prop-types";
npm install을 이용해 설치 해주고 파일 위에 선언 해준다.
const fruitList = [
{
id: 1,
name: "orange",
price: "2,000",
store: 3
},
{
id: 2,
name: "apple",
price: "3,000",
store: 5
},
{
id: 3,
name: "grape",
price: "4,000",
store: 5
}
]
function Fruit({name, price, store}) {
return (
<div>
<h2>Fruit name : {name}</h2>
<p>{price}원</p>
<p>{store}</p>
</div>
)
}
function App() {
return (
<div>
{fruitList.map((item)=>(
<Fruit key={item.id} name={item.name} price={item.price} store={item.store} />
))}
</div>
);
}
Fruit.propTypes={
name: PropTypes.string,
price:PropTypes.string,
store:PropTypes.number
}
이렇게 props를 받는 함수에 propTypes를 사용하여
어떤 타입을 받기로 했는지 정리해줌.
예를들어 name을 string으로 받는다고 해놓고
number값을 전송해준다면?
index.js:1 Warning: Failed prop type: Invalid prop `name` of type `number` supplied to `Fruit`, expected `string`.
Fruit에 제공된 name은 string을 예상했는데 number라는 위와 같은 오류 메세지를 확인할 수 있음.
이러한 propTypes의 오류 체크 기능으로
해당 property에 잘못 된 데이터를 넣었을 때 체크가 가능하다.
다양한 타입체크
PropTypes.array,
PropTypes.bool,
PropTypes.func,
PropTypes.number,
PropTypes.object,
PropTypes.string,
PropTypes.symbol,
PropTypes.arrayOf(PropTypes.string) //배열 안의 요소
필수값 체크
property: PropTypes.numger.isRequired,
이렇게 뒤에 isRequired를 넣어주면 필수값이라는 것을 의미함.
store이라는 property에 데이터가 없으면(undefined) 경고를 띄움.
https://www.npmjs.com/package/prop-types
이쪽에서 좀 더 자세하게 볼 수 있다.
'React' 카테고리의 다른 글
[React] component Llifecycle (0) | 2021.10.24 |
---|---|
[React] Class Components와 State (0) | 2021.10.22 |
[React] 반복되는 component 표현 - map함수 (0) | 2021.10.21 |
[React] props에 대한 이해 (0) | 2021.10.21 |
[React] JSX와 Component에 대한 이해 (+ Fragments) (0) | 2021.10.20 |
Comments