[React] Prop-types
😎 Prop types
propsは、親コンポーネントからサブコンポーネントにデータを転送する方法であり、親コンポーネントでpropsを使用すると、オブジェクトがサブコンポーネントのパラメータとして入力されます.
propsはまた、sting、number、boolean、functionなどの多くのコンテンツを含んでもよい.
PropTypesを使用して、異なるデータの転送によるエラーメッセージを回避するために、データのタイプ(type)を決定します.
😎 PropTypeタイプ
デフォルトでは、これらのタイプはPropTypeとして定義できます.
MyComponent.propTypes = {
array: PropTypes.array,
bigInt: PropTypes.bigint,
bool: PropTypes.bool,
func: PropTypes.func,
number: PropTypes.number,
object: PropTypes.object,
string: PropTypes.string,
// 필수로 모든 component에 값을 확인
symbol: PropTypes.symbol.isRequired,
// 배열에 포함된 '값' 중 하나라도 만족
foods: PropTypes.oneOf(["ramen", "kimbab"]),
// 배열에 포함된 '타입' 중 하나를 만족
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
// 특정 타입만을 포함하는 배열
arrayOf: PropTypes.arrayOf(PropTypes.number),
// 객체 내 모든 속성 값의 타입이 같은 경우
objectOf: PropTypes.objectOf(PropTypes.number),
// 객체의 속성값 타입을 정의
// {color: 'red', weight: 123} // true
info: PropTypes.shape({
color: PropTypes.string,
weight: PropTypes.number
})
}
😎 PropTypeのインストール
npm i prop-types
入力設定prop-typesimport PropTypes from 'prop-types'
導入する.😎 使用例
import ProptTypes form 'prop-types';
const Greeting({name, age}) {
return(
<h1>Hello, {name}!</h1>
<h3>I'am {age} :P</h3>
);
}
Greeting.propTypes = {
name: PropTypes.string.isRequired,
age: PropTypes.number.isRequired,
};
nameに数値が入力された場合、または他のタイプのデータが入力された場合、エラーメッセージはコンソールに出力され、エラーを確認します.🚨 注意事項🚨
PropTypeを作成する場合は、大文字と小文字を区別します.
大文字が混同されているため、異なる大文字は使用できません.😢
Reference
この問題について([React] Prop-types), 我々は、より多くの情報をここで見つけました https://velog.io/@bomida/React-Prop-typesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol