📅  最后修改于: 2020-10-20 04:48:50             🧑  作者: Mango
属性验证是强制正确使用组件的有用方法。一旦应用变大,这将有助于在开发期间避免将来出现错误和问题。这也使代码更具可读性,因为我们可以看到应该如何使用每个组件。
在此示例中,我们将使用所需的所有道具来创建App组件。 App.propTypes用于道具验证。如果某些道具未使用我们分配的正确类型,则会收到控制台警告。指定验证模式后,将设置App.defaultProps 。
import React from 'react';
class App extends React.Component {
render() {
return (
Array: {this.props.propArray}
Bool: {this.props.propBool ? "True..." : "False..."}
Func: {this.props.propFunc(3)}
Number: {this.props.propNumber}
String: {this.props.propString}
Object: {this.props.propObject.objectName1}
Object: {this.props.propObject.objectName2}
Object: {this.props.propObject.objectName3}
);
}
}
App.propTypes = {
propArray: React.PropTypes.array.isRequired,
propBool: React.PropTypes.bool.isRequired,
propFunc: React.PropTypes.func,
propNumber: React.PropTypes.number,
propString: React.PropTypes.string,
propObject: React.PropTypes.object
}
App.defaultProps = {
propArray: [1,2,3,4,5],
propBool: true,
propFunc: function(e){return e},
propNumber: 1,
propString: "String value...",
propObject: {
objectName1:"objectValue1",
objectName2: "objectValue2",
objectName3: "objectValue3"
}
}
export default App;
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render( , document.getElementById('app'));