使用背景: ①當需要接收的數據是number型數據,而父組件卻傳遞了“1”
②忘記傳遞數據 <CommentItem message={} />
當父子組件間通過props傳遞數據時,通過對組件數據進行類型檢測,有效監控數據 —— 當數據傳遞類型出錯或者傳遞空數據可以迅速找到出錯的准確位置,更省時方便。
-----------------------------------------------------------------------------------------------------------------------------
步驟1. 通過下載第三方庫 npm install --save prop-types
步驟2. 在子組件中導入,並使用:
導入: import PropTypes from 'prop-types'
使用: 與 render(){} 同級,
static propTypes = {
屬性: PropTypes . 類型 (. isRequired )
}
舉個栗子:要接收的
handleAdd屬性
是函數型
handleAdd: PropTypes.func (若該屬性數據是必須傳遞的--> handleAdd: PropTypes.func.isRequired)
-----------------------------------------------------------------------------------------------------------------------------
檢測類型:
字符串 PropTypes.string
數字 PropTypes.number
布爾 PropTypes.bool
對象 PropTypes.object
數組 PropTypes.array
函數 PropTypes.func
-----------------------------------------------------------------------------------------------------------------------------
這里,我們在子組件中設置 handleAdd 屬性的類型為func,且必填。

一、如果給handleAdd屬性傳遞的的是Number類型 123 , 則會報錯:


錯誤提示中清楚地指出:./src/App.js文件中的27行的 handleAdd屬性 期望得到的是函數類型,卻得到了Number類型。
二、如果未傳遞有效數據,則會報錯:


錯誤提示中清楚地指出:./src/App.js文件中的27行的 handleAdd不可為空,是必填的。
