我可以在PropTypes oneOf中混合类型和值吗?

时间:2019-01-21 13:13:26

标签: reactjs react-proptypes

是否可以使用PropTypes.oneOf来强制特定类型或字符串文字的存在?

示例:

display: PropTypes.oneOf([PropTypes.bool, 'autohide']),

还是只是将PropTypes.bool视为返回的任何文字值?在官方文档中找不到对此的任何引用,因此我假设它不起作用,因为我希望它能起作用。不过,它不会引发错误。

2 个答案:

答案 0 :(得分:3)

您可以像这样将oneOf()嵌套到oneOfType()

PropTypes.oneOfType([
    PropTypes.bool,
    PropTypes.oneOf(['autohide'])
])

答案 1 :(得分:0)

是的,可以,但不能直接。实际上,您可以通过以下方式使用不同的PropTypes

display: PropTypes.oneOf([
  true,
  false,
  'autohide'
]),

您知道PropTypes.bool将是truefalse。有关验证的高级用法,请参见此处的CustomValidation:customArrayProp

参考:Typechecking With PropTypes – React