Javascript React无状态组件和类型检查React.PropTypes.element

Javascript React无状态组件和类型检查React.PropTypes.element,javascript,reactjs,Javascript,Reactjs,描述 //反应元素。 可选元素:React.PropTypes.element 这不适用于检查无状态组件(定义为函数) 我正在使用 PropTypes.oneOfType([PropTypes.element, PropTypes.func]) 但是它太冗长了,而且这并没有限制只由无状态组件的函数输入 是否存在另一个PropTypes.来匹配这两种类型的React组件?无状态功能组件支持相同的类型检查机制。只需将.propTypes和.defaultProps设置为函数的属性。这是您的手机号码

描述

//反应元素。
可选元素:React.PropTypes.element

这不适用于检查无状态组件(定义为函数)

我正在使用

PropTypes.oneOfType([PropTypes.element, PropTypes.func])
但是它太冗长了,而且这并没有限制只由无状态组件的函数输入


是否存在另一个
PropTypes.
来匹配这两种类型的React组件?

无状态功能组件支持相同的类型检查机制。只需将
.propTypes
.defaultProps
设置为函数的属性。这是您的手机号码,或者您可以查看使用情况

至于更高级的匹配,
PropTypes.oneOfType()
就足够了,您还可以提供“自定义验证器”。现在两个选项都列在同一个列表上

如果您觉得语法冗长,那么从“react”中使用
import{PropTypes as typeOf}作为别名可能会有所帮助。但任何进一步的抽象/别名都将超出React的能力,因为:

  • React.PropTypes.element是受支持的类型检查之一,特定于React
  • 缺少处理边缘病例的标准方法。我是否应该同意JS<代码> No.n==‘数字’< /代码>或考虑<代码>楠<代码>作为无效输入?< /LI>
    元素是使用JSX(
    )或调用
    React.createElement
    时得到的元素。看起来您可能正在传递组件“构造函数”本身,而不是它的元素。你能告诉我你是如何设置道具的吗?@FelixKling的
    PropTypes.element
    指的是一个组件或组件的一个实例?例如,如果我有一个类组件
    MyComponent
    ,我应该传入
    MyComponent
    还是
    ?@FranklinYu: