공식 문서 시리즈를 보지 않고--proptypes 소개
개시하다
prop-types의 주요 역할: props의 데이터 유형에 대한 검측 및 제한
참조 방법:
import PropTypes from 'prop-types'
사용법://
componentsName.PropTypes = {
: PropTypes.
}
//
myComponents.PropTypes = {
name: Proptypes.string
}
(공식 문서 원례)
MyComponent.propTypes = {
// JS
optionalArray: PropTypes.array,
optionalBool: PropTypes.bool,
optionalFunc: PropTypes.func,
optionalNumber: PropTypes.number,
optionalObject: PropTypes.object,
optionalString: PropTypes.string,
optionalSymbol: PropTypes.symbol,
}
MyComponent.propTypes = {
// ( 、 、 )。
optionalNode: PropTypes.node,
}
MyComponent.propTypes = {
optionalMessage: PropTypes.instanceOf(Message),
}
MyComponent.propTypes = {
//
optionalEnum: PropTypes.oneOf(['News', 'Photos']),
}
MyComponent.propTypes = {
//
optionalUnion: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
PropTypes.instanceOf(Message)
]),
}
MyComponent.propTypes = {
//
optionalArrayOf: PropTypes.arrayOf(PropTypes.number),
}
MyComponent.propTypes = {
//
optionalObjectOf: PropTypes.objectOf(PropTypes.number),
}
MyComponent.propTypes = {
//
optionalObjectWithShape: PropTypes.shape({
color: PropTypes.string,
fontSize: PropTypes.number
}),
}
MyComponent.propTypes = {
// PropTypes `isRequired`
// , ,
requiredFunc: PropTypes.func.isRequired,
}
MyComponent.propTypes = {
//
requiredAny: PropTypes.any.isRequired,
}
MyComponent.propTypes = {
// 。
// Error `console.warn` 。
// `oneOfType` 。
customProp: function(props, propName, componentName) {
if (!/matchme/.test(props[propName])) {
return new Error(
'Invalid prop `' + propName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
},
// `arrayOf` `objectOf`
// , Error 。
// 。
// , 。
customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {
if (!/matchme/.test(propValue[key])) {
return new Error(
'Invalid prop `' + propFullName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
})
}
// react
MyComponent.propTypes = {
optionalElement: PropTypes.element,
}
//
MyComponent.propTypes = {
optionalElement: PropTypes.element.isRequired,
}
class Greeting extends React.Component {
render() {
return (
Hello, {this.props.name}
);
}
}
// :
Greeting.defaultProps = {
name: 'Stranger'
};
// "Hello, Stranger":
ReactDOM.render(
,
document.getElementById('example')
);
//
static defaultProps = {
name: 'stranger'
}
궁금한 것이 있으면 평론해 주십시오. 제가 보면 즉시 회답할 것입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.