国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

React教程之Props驗(yàn)證的具體用法(Props Validation)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:31:13
文檔

React教程之Props驗(yàn)證的具體用法(Props Validation)

React教程之Props驗(yàn)證的具體用法(Props Validation):Props驗(yàn)證對(duì)于組件的正確使用是一種非常有用的方式。它可以避免隨著你的應(yīng)用的程序越來(lái)越復(fù)雜從而出現(xiàn)很多的bug和問題。并且,它還可以是你的程序變得更易讀。 那如何對(duì)Props進(jìn)行驗(yàn)證呢,其實(shí)很簡(jiǎn)單,React為我們提供了PropTypes以供驗(yàn)證使用。當(dāng)我們向Pro
推薦度:
導(dǎo)讀React教程之Props驗(yàn)證的具體用法(Props Validation):Props驗(yàn)證對(duì)于組件的正確使用是一種非常有用的方式。它可以避免隨著你的應(yīng)用的程序越來(lái)越復(fù)雜從而出現(xiàn)很多的bug和問題。并且,它還可以是你的程序變得更易讀。 那如何對(duì)Props進(jìn)行驗(yàn)證呢,其實(shí)很簡(jiǎn)單,React為我們提供了PropTypes以供驗(yàn)證使用。當(dāng)我們向Pro

Props驗(yàn)證對(duì)于組件的正確使用是一種非常有用的方式。它可以避免隨著你的應(yīng)用的程序越來(lái)越復(fù)雜從而出現(xiàn)很多的bug和問題。并且,它還可以是你的程序變得更易讀。

那如何對(duì)Props進(jìn)行驗(yàn)證呢,其實(shí)很簡(jiǎn)單,React為我們提供了PropTypes以供驗(yàn)證使用。當(dāng)我們向Props傳入的數(shù)據(jù)無(wú)效(也就是向Props傳入的數(shù)據(jù)類型和驗(yàn)證的數(shù)據(jù)類型不符)就會(huì)在控制臺(tái)發(fā)出警告信息。

看下面的例子

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')
);

當(dāng)然,上面這個(gè)例子是沒有錯(cuò)誤的。下面我們將上面的例子進(jìn)行修改

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",
 };
},

然后,我們會(huì)在控制臺(tái)中發(fā)現(xiàn)有如下的警告

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

這是一種情況,驗(yàn)證Props的數(shù)據(jù)類型。還有一種情況就是驗(yàn)證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兩項(xiàng)是必須有值的

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

在上面代碼中我們將optionalArray和optionalBool去掉,然后再去瀏覽器中運(yùn)行代碼,會(huì)發(fā)現(xiàn)控制臺(tái)報(bào)如下的錯(cuò)誤

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

當(dāng)然,上面只是簡(jiǎn)單的兩種情況。對(duì)于Props的驗(yàn)證,還有很多的東西,驗(yàn)證的形式也有很多,具體我們可以參考React官方文檔。

這里我們有一個(gè)知識(shí)點(diǎn)需要說明一下,就是getDefaultProps。這是默認(rèn)給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()可以保證,當(dāng)父級(jí)組件沒有傳入Props的時(shí)候,可以保證當(dāng)前組件有默認(rèn)的Props的值。需要注意的是,getDefaultProps的返回結(jié)果是會(huì)被緩存起來(lái)的。因此,我們可以直接使用Props,而沒有必要再手動(dòng)編寫一些沒有意義的重復(fù)的代碼。

對(duì)于Props的驗(yàn)證,就介紹到這里。希望本文對(duì)大家有所幫助。也希望大家多多支持腳本之家。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

React教程之Props驗(yàn)證的具體用法(Props Validation)

React教程之Props驗(yàn)證的具體用法(Props Validation):Props驗(yàn)證對(duì)于組件的正確使用是一種非常有用的方式。它可以避免隨著你的應(yīng)用的程序越來(lái)越復(fù)雜從而出現(xiàn)很多的bug和問題。并且,它還可以是你的程序變得更易讀。 那如何對(duì)Props進(jìn)行驗(yàn)證呢,其實(shí)很簡(jiǎn)單,React為我們提供了PropTypes以供驗(yàn)證使用。當(dāng)我們向Pro
推薦度:
標(biāo)簽: 使用 驗(yàn)證 認(rèn)證
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产成人精品第一区二区 | 一边摸一边爽一边叫床视频 | 中日韩在线 | 欧美91精品久久久久网免费 | 欧美高清免费 | 成人一区二区免费中文字幕 | 欧美国产日韩在线 | 狠狠色狠狠色合久久伊人 | 欧美成人国产一区二区 | 欧洲人交xxx69 | 久久国产视频一区 | 亚洲欧美在线观看一区二区 | 一本在线| 日本国产最新一区二区三区 | 中文字幕在线视频精品 | 日本伊人网 | 国内精品线在线观看 | 99久久精品费精品国产一区二区 | 天码毛片一区二区三区入口 | 视频精品一区二区 | 全免费一级午夜毛片 | 国产码欧美日韩高清综合一区 | 欧美激情一区二区亚洲专区 | 国产三级直播 | 亚洲国产精品一区二区九九 | 国产一区二区三区精品视频 | 国产精品女同一区二区久久 | er久99久热只有精品国产 | 在线观看日韩精品 | 亚洲欧美国产精品第1页 | 久久不射网 | 亚洲天堂黄色 | 国产日韩欧美精品一区二区三区 | 亚洲精品美女久久777777 | 97成人资源| 精品伊人久久久 | 久久精品最新免费国产成人 | 伊人久久中文字幕久久cm | 欧美高清在线精品一区二区不卡 | 在线观看色 | 欧美日韩免费一区二区在线观看 |