<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
安裝 prop-types 包
$ npm install prop-types
匯入 propTypes 物件
import propTypes from 'prop-types';
元件名.propTypes = {} 設定元件 傳參規則
Comp.propTypes = { param: propTypes.array // Comp元件 的 param 引數必須是 陣列型別 }
範例:
// props 型別校驗規則 import React from 'react'; // 1. npm i prop-types // 2. 匯入 propTypes 物件 import PropTypes from "prop-types"; function Son({list}) { return ( <div> {list.map(item => <p key={item}>{item}</p>)} </div> ) } // 3. 元件名.propTypes = {} 給元件設定規則 Son.PropTypes={ // 4. 各欄位設定規則 list: PropTypes.array // Son的list引數必須是 陣列形式 } class App extends React.Component { render() { return ( <div> <Son list="我企鵝親子裝"/> </div> ) } } export default App;
報錯提示如下:
四種常見結構
array
、number
、bool
、string
、func
、object
、symbol
element
isRequired
shape({})
核心程式碼:
// 1.型別 optionalFun: PropTypes.fun; // 2.必填項 requiredFun: PropTypes.fun.isRequired; // 3. // 可以指定一個物件由特定的型別值組成 optionalObjectWithShape: PropTypes.shape({ color: PropTypes.string, fontSize: PropTypes.number }),
範例:
import React from "react"; // 1. 函數引數預設值 function Son1({defaultTime = 10}) { return ( <div>The timer is : {defaultTime}</div> ) } class App extends React.Component { render() { return ( <div> <Son1 /> </div> ) } } export default App;
function Son2({defaultTime}) { return ( <div>The second timer is: {defaultTime}</div> ) } // 2. defaultProps 設定預設值 Son2.defaultProps = { defaultTime: 100 } class App extends React.Component { render() { return ( <div> <Son1 /> <Son2 /> </div> ) } }
class Son3 extends React.Component { render() { return ( <div>The defaultTimer is : {this.props.defaultTime}</div> ) } } // defaultProps 設定預設值 Son3.defaultProps = { defaultTime: 3333 }
class Son4 extends React.Component { static defaultProps ={ defaultTime: 66666 } render() { return ( <div>The defaultTimer is : {this.props.defaultTime}</div> ) } }
完整範例
// props預設值 import { func } from "prop-types"; import React from "react"; // 1.1 函數引數預設值 function Son1({defaultTime = 10}) { return ( <div>The timer is : {defaultTime}</div> ) } function Son2({defaultTime}) { return ( <div>The second timer is: {defaultTime}</div> ) } // 1.2 defaultProps 設定預設值 Son2.defaultProps = { defaultTime: 100 } class Son3 extends React.Component { render() { return ( <div>The defaultTimer is : {this.props.defaultTime}</div> ) } } // 2.1 函數 defaultProps 設定預設值 Son3.defaultProps = { defaultTime: 3333 } // 2.2 靜態屬性宣告 class Son4 extends React.Component { static defaultProps ={ defaultTime: 66666 } render() { return ( <div>The defaultTimer is : {this.props.defaultTime}</div> ) } } class App extends React.Component { render() { return ( <div> <Son1 /> <Son2 /> <Son3 /> <Son4 /> </div> ) } } export default App;
如圖:
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45