[英]Use react proptypes for validation in purely functional code
我真的很喜歡react原型的想法,並且想知道它們是否可以用於驗證任何給定函數的輸入,而不僅僅是將prop傳遞給react組件。
例如:
function doSomething (thing1, thing2) {
Proptypes.validate(arguments, [Proptypes.string, Proptypes.number]);
}
有沒有辦法獲得原型來做到這一點?
謝謝!
是的,盡管您需要傳遞一些無關的參數,但它們可以。
您可能想做一個包裝器函數來使生活更輕松,但是,請不要忘記React.PropTypes
本身就是函數。
例如:
React.PropTypes.string(props, propName, componentName)
其中props
是組件的整個props對象, propName
是要檢查的prop的名稱(和鍵),而componentName
是要從中調用它的組件的名稱。
盡管我認為最好自己動手,因為自己動手做這將是很少的代碼,並且可以使您免受React.PropTypes
在以后的React版本中工作方式的任何潛在更改。
屬性驗證器是函數,因此您可以調用它們。 如Prop驗證文檔中的customProp
示例所示,參數為props
, propName
和componentName
。 該函數在成功時返回null
或在失敗時返回Error
。 例如:
React.PropTypes.number({'a': 4}, 'a', 'foo')
// null
React.PropTypes.number({'a': 'b'}, 'a', 'foo')
// Error: Invalid undefined `a` of type `string`
// supplied to `foo`, expected `number`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.