最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

React教程之Props验证的具体用法(Props Validation)

来源:懂视网 责编:小采 时间:2020-11-27 22:31:13
文档

React教程之Props验证的具体用法(Props Validation)

React教程之Props验证的具体用法(Props Validation):Props验证对于组件的正确使用是一种非常有用的方式。它可以避免随着你的应用的程序越来越复杂从而出现很多的bug和问题。并且,它还可以是你的程序变得更易读。 那如何对Props进行验证呢,其实很简单,React为我们提供了PropTypes以供验证使用。当我们向Pro
推荐度:
导读React教程之Props验证的具体用法(Props Validation):Props验证对于组件的正确使用是一种非常有用的方式。它可以避免随着你的应用的程序越来越复杂从而出现很多的bug和问题。并且,它还可以是你的程序变得更易读。 那如何对Props进行验证呢,其实很简单,React为我们提供了PropTypes以供验证使用。当我们向Pro

Props验证对于组件的正确使用是一种非常有用的方式。它可以避免随着你的应用的程序越来越复杂从而出现很多的bug和问题。并且,它还可以是你的程序变得更易读。

那如何对Props进行验证呢,其实很简单,React为我们提供了PropTypes以供验证使用。当我们向Props传入的数据无效(也就是向Props传入的数据类型和验证的数据类型不符)就会在控制台发出警告信息。

看下面的例子

var Propsva = React.createClass({
 propTypes: {
 optionalArray: React.PropTypes.array,
 optionalBool: React.PropTypes.bool,
 optionalFunc: React.PropTypes.func,
 optionalNumber: React.PropTypes.number,
 optionalObject: React.PropTypes.object,
 optionalString: React.PropTypes.string,
 },
 getDefaultProps:function(){
 return {
 optionalArray: ['onmpw.com','——迹忆博客'],
 optionalBool: true,
 optionalFunc: function (arg) {
 console.log(arg);
 },
 optionalNumber: 3,
 optionalObject: {
 object1: "objectvalue1",
 object2: "objectvalue2",
 object3: "objectvalue3",
 },
 optionalString: "My Onmpw",
 };
 },
 render:function(){
 return (
 <div>
 <h3>Array:{this.props.optionalArray}</h3>
 <h3>Bool:{this.props.optionalBool}</h3>
 <h3 onClick={this.props.optionalFunc}>Func:click</h3>
 <h3>Number:{this.props.optionalNumber}</h3>
 <h3>Object:{this.props.optionalObject.object1}</h3>
 <h3>Object:{this.props.optionalObject.object2}</h3>
 <h3>Object:{this.props.optionalObject.object3}</h3>
 <h3>String:{this.props.optionalString}</h3>
 </div>
 );
 }
});
ReactDOM.render(
 <Propsva />,
 document.getElementById('content')
);

当然,上面这个例子是没有错误的。下面我们将上面的例子进行修改

getDefaultProps:function(){
 return {
 optionalArray: 'onmpw.com——迹忆博客',
 optionalBool: true,
 optionalFunc: function (arg) {
 console.log(arg);
 },
 optionalNumber: 3,
 optionalObject: {
 object1: "objectvalue1",
 object2: "objectvalue2",
 object3: "objectvalue3",
 },
 optionalString: "My Onmpw",
 };
},

然后,我们会在控制台中发现有如下的警告

Warning: Failed propType: Invalid prop `optionalArray` of type `string` supplied to `Propsva`, expected `array`.

这是一种情况,验证Props的数据类型。还有一种情况就是验证Props是否有值。看下面的代码

propTypes: {
 optionalArray: React.PropTypes.array.isRequired,
 optionalBool: React.PropTypes.bool.isRequired,
 optionalFunc: React.PropTypes.func,
 optionalNumber: React.PropTypes.number,
 optionalObject: React.PropTypes.object,
 optionalString: React.PropTypes.string,
},

在React.PropTypes.array和React.PropTypes.bool后面加上isRequired,表示optionalArray和optionalBool两项是必须有值的

getDefaultProps:function(){
 return {
 optionalFunc: function (arg) {
 console.log(arg);
 },
 optionalNumber: 3,
 optionalObject: {
 object1: "objectvalue1",
 object2: "objectvalue2",
 object3: "objectvalue3",
 },
 optionalString: "My Onmpw",
 };
},

在上面代码中我们将optionalArray和optionalBool去掉,然后再去浏览器中运行代码,会发现控制台报如下的错误

Warning: Failed propType: Required prop `optionalArray` was not specified in `Propsva`.
Warning: Failed propType: Required prop `optionalBool` was not specified in `Propsva`.

当然,上面只是简单的两种情况。对于Props的验证,还有很多的东西,验证的形式也有很多,具体我们可以参考React官方文档。

这里我们有一个知识点需要说明一下,就是getDefaultProps。这是默认给Props赋值。看下面的代码

var ComponentDefaultProps = React.createClass({
 getDefaultProps: function() {
 return {
 value: 'Default Value'
 };
 },
 render:function(){
 return (
 <div>{this.props.value}</div>
 )
 }
});
ReactDOM.render(
 <ComponentDefaultProps />,
 document.getElementById('content')
);

getDefaultProps()可以保证,当父级组件没有传入Props的时候,可以保证当前组件有默认的Props的值。需要注意的是,getDefaultProps的返回结果是会被缓存起来的。因此,我们可以直接使用Props,而没有必要再手动编写一些没有意义的重复的代码。

对于Props的验证,就介绍到这里。希望本文对大家有所帮助。也希望大家多多支持脚本之家。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

React教程之Props验证的具体用法(Props Validation)

React教程之Props验证的具体用法(Props Validation):Props验证对于组件的正确使用是一种非常有用的方式。它可以避免随着你的应用的程序越来越复杂从而出现很多的bug和问题。并且,它还可以是你的程序变得更易读。 那如何对Props进行验证呢,其实很简单,React为我们提供了PropTypes以供验证使用。当我们向Pro
推荐度:
标签: 使用 验证 认证
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top