// React元素。
optionalElement:React.PropTypes.element,
这不适用于检查无状态组件(定义为函数)。
我正在使用
PropTypes.oneOfType([PropTypes.element, PropTypes.func])
但它太冗长了,并且这并不仅限于无状态组件的输入。
是否存在另一个PropTypes.<test>
来匹配这两种React组件?
答案 0 :(得分:2)
无状态功能组件确实支持相同的类型检查机制。只需将.propTypes
和.defaultProps
设置为该函数的属性即可。以下是official guideline,您也可以查看somewhere like here的使用情况。
对于更高级的匹配,PropTypes.oneOfType()
应该足够了,您还可以提供“自定义验证器”。这两个选项现在都列在同一个official typechecking guide上。
如果您认为语法冗长,使用import {PropTypes as typeOf } from 'react'
别名可能会有所帮助。但是由于以下原因,任何进一步的抽象/别名都不符合React的能力:
typeof NaN === 'number'
还是将NaN
视为无效输入?