React之PropTypes属性
2017-07-17 19:14
465 查看
跟着阮一峰老师的react走了一遍发现其中一个demo会有报错。
<!DOCTYPE html>
<html>
<head>
<script src="../build/react.js"></script>
<script src="../build/react-dom.js"></script>
<script src="../build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
var data = 123;
var MyTitle = React.createClass({
propTypes: {
title: React.PropTypes.string.isRequired,
},
render: function() {
return <h1> {this.props.title} </h1>;
}
});
ReactDOM.render(
<MyTitle title={data} />,
document.getElementById('example')
);
</script>
</body>
</html>
报错如下:
Warning: Failed propType: Invalid prop `title` of type `number` supplied to `MyTitle`, expected `string`.
组件类的 PropTypes属性,就是验证组件实例的属性是否符合要求,这里的data属性是number,如果改成就不会报错。
propTypes: {
title: React.PropTypes.number.isRequired,
},
如果不改React.PropTypes.string.isRequired,更改data如下,机会抛出错误、
var data = 12ff3;
错误:
Uncaught SyntaxError: embedded: Identifier directly after number (3:19)
1 |
2 |
> 3 | var data = 12ff3;
| ^
4 |
5 | var MyTitle = React.createClass({
6 | propTypes: {
data 无法显示出来
需要将var data = '12ff3'; 加上引号转成string类型即可显示出来。
<!DOCTYPE html>
<html>
<head>
<script src="../build/react.js"></script>
<script src="../build/react-dom.js"></script>
<script src="../build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
var data = 123;
var MyTitle = React.createClass({
propTypes: {
title: React.PropTypes.string.isRequired,
},
render: function() {
return <h1> {this.props.title} </h1>;
}
});
ReactDOM.render(
<MyTitle title={data} />,
document.getElementById('example')
);
</script>
</body>
</html>
报错如下:
Warning: Failed propType: Invalid prop `title` of type `number` supplied to `MyTitle`, expected `string`.
组件类的 PropTypes属性,就是验证组件实例的属性是否符合要求,这里的data属性是number,如果改成就不会报错。
propTypes: {
title: React.PropTypes.number.isRequired,
},
如果不改React.PropTypes.string.isRequired,更改data如下,机会抛出错误、
var data = 12ff3;
错误:
Uncaught SyntaxError: embedded: Identifier directly after number (3:19)
1 |
2 |
> 3 | var data = 12ff3;
| ^
4 |
5 | var MyTitle = React.createClass({
6 | propTypes: {
data 无法显示出来
需要将var data = '12ff3'; 加上引号转成string类型即可显示出来。
相关文章推荐
- React组件属性部类(propTypes)校验
- React组件的属性PropTypes
- React组件属性props部类(propTypes)校验
- React Native之prop-types进行属性确认
- React组件属性类型(propTypes)
- React组件属性类型(propTypes)
- react-native 组件默认属性(defaultProps) 及 属性类型验证(PropTypes)
- React PropTypes 定义组件的属性类型和默认属性
- React组件属性类型(propTypes)
- React PropTypes
- Manually calling a React.PropTypes validation React native
- [React] Define defaultProps and PropTypes as static methods in class component
- [React] Remove React PropTypes by using Flow Annotations (in CRA)
- React高级指南(二)【Typechecking With PropTypes】
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
- react的类型检查(PropTypes)
- react.js-06-propTypes类型校验
- react PropTypes
- React文档(十五)使用propTypes进行类型检查
- React Native 之 PropTypes(属性)