Can I mix a type and a value in PropTypes oneOf?
是否可以使用PropTypes.oneOf强制存在特定类型或字符串文字?
例:
1
| display: PropTypes.oneOf([PropTypes.bool, 'autohide']), |
还是只是将PropTypes.bool视为返回的任何文字值? 在官方文档中找不到对此的任何引用,因此我假设它不起作用,因为我希望它能起作用。 不过,它不会引发错误。
-
是的,你可以这么做
-
值得检查React PropTypes:一个道具允许使用不同类型的PropTypes
-
@Rishabh确定吗? 有证据吗
您可以像这样将oneOf()嵌套到oneOfType()中
1 2 3 4
| PropTypes.oneOfType([
PropTypes.bool,
PropTypes.oneOf(['autohide'])
]) |
-
刚看到以下内容:如何获取嵌套的原型?我希望道具是特定的字符串(xs,s,m,l,xl,xxl)或任意数量的GitHub
-
通过文档有意义,尽管我不喜欢只是为了一个字面值而将数组推入其中。我猜想,只是拼出展位的布尔值。
-
@YoniWeisbrod确实是这种情况! ??
-
docs显示oneOfType的不同示例-混合类型+ PropTypes.instanceOf
-
@skyboyer instanceOf在这种情况下不起作用,因为coz OP希望针对特定值进行验证。
-
有人评论"是否有相关文档?"。没有明确的文档部分,但示例指出了它的可能
-
我想念TypeScript :)
-
@YoniWeisbrod由于某种原因,我讨厌TypeScript-它会将Java引入JavaScript,这是不应该的。
是的,可以,但不能直接。 实际上,您可以通过以下方式使用不同的PropTypes:
1 2 3 4 5
| display: PropTypes.oneOf([
true,
false,
'autohide'
]), |
您知道PropTypes.bool将是true或false。 有关验证的高级用法,请参见此处的CustomValidation:customArrayProp。
参考:使用PropTypes进行类型检查– React
-
谢谢-是的,我知道我可以提供文字值。但是我想看看是否有可能混合使用。 CustomArray是一个有趣的想法,谢谢。
-
@YoniWeisbrod Yep,在这里:如何获取嵌套的原型?我希望道具是特定的字符串(xs,s,m,l,xl,xxl)或任何数量的GitHub。
-
@YoniWeisbrod经过我们的讨论,您似乎会选择我的解决方案。您想接受这个答案吗? ??