zl程序教程

您现在的位置是:首页 >  后端

当前栏目

ES6 数据校验

ES6数据 校验
2023-09-27 14:28:17 时间
// 所有可以被渲染的对象:数字,字符串,DOM 元素或包含这些类型的数组。 optionalNode: React.PropTypes.node, // 可以是一个 ReactElement 类型 optionalElement: PropTypes.element, // 可以是某个组件的实例 optionalMessage: PropTypes.instanceOf(Message), // 可以是一组值中其中的一个 optionalEmun: PropTypes.oneOf([News, Photos]), // 可以是一组类型中的一个 optionalUnion: PropTypes.oneOfType([ PropTypes.array, PropTypes.string, PropTypes.instanceOf(Message) // 指定类型组成的数组 optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number), // 指定类型的属性构成的对象 optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number), // 特定形状参数的对象 optionalObjectWithShape: React.PropTypes.shape({ color: React.PropTypes.string, fontSize: React.PropTypes.number // 以后任意类型加上 `isRequired` 来使 prop 不可空。 requiredFunc: React.PropTypes.func.isRequired, // 不可空的任意类型 requiredAny: React.PropTypes.any.isRequired, // 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接 // 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。 customProp: function(props, propName, componentName) { if (!/matchme/.test(props[propName])) { return new Error(Validation failed!); // 可以在最后加一个 isRequired,表明这个属性是必须的,否则会返回一个错误 requiredFunc: PropTypes.func.isRequired class Profile extends React.Component { render() { return ( div className="profile-component" {/* this.pros 是传入的属性 */} h1 my name is { this.props.name } /h1 h2 my age is { this.props.age } /h2 /div Profile.propTypes = propTypes; export default Profile;

将 propTypes 写在类中

import React, { PropTypes } from react;

export default class Profile extends React.Component {

 static get propTypes() {

 return {

 name: PropTypes.string.isRequired,

 age: PropTypes.number.isRequired

 constructor(props) {

 super(props);

 this.state = { count: 0 };

 this.likeMe = this.likeMe.bind(this);

 componentDidMount() {

 // 组件加载完成1秒之后,使 count 自动加1

 setTimeout(() = {

 this.likeMe();

 }, 1000);

 likeMe() {

 let count = this.state.count;

 count += 1;

 console.log(count);

 this.setState({ count });

 render() {

 return (

 div className="profile-component" 

 {/* this.pros 是传入的属性 */}

 h1 my name is { this.props.name } /h1 

 h2 my age is { this.props.age } /h2 

 button this.likeMe} Like Me /button 

 h2 Like Me Count: { this.state.count } /h2 

 /div 

}