簡體   English   中英

在純功能代碼中使用react原型進行驗證

[英]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示例所示,參數為propspropNamecomponentName 該函數在成功時返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM