有没有一种方法可以使用React.PropTypes
在单个属性上进行多次验证。特别是想要混合自定义验证和库验证。
我有两个props,一个对象options
和一个字符串value
。我想检查props.value
是否是一个字符串,但也是对象上的一个键。使用coffeescript,它看起来像:
propTypes:
options: React.PropTypes.Object.isRequired
value: (props, propName, componentName) ->
unless props[propName] of props.options
new Error('my custom message')
这很好用,但我还想确保我的值是字符串类型。我确定我可以在自定义函数中手动添加验证,但理想情况下,我只想使用
React.PropTypes.string.isRequired
。我尝试了将其放入自定义函数并执行,但没有起作用。以下方法也不行: value: React.PropTypes.string.isRequired && (props, propName, componentName) ->
unless props[propName] of props.options
new Error('my custom message')
有没有使用React内置验证器使其工作的方法,或者在我的函数中重新编写是唯一的选择?
return new Error('msg') unless typeof props[propName] == 'string'
,可能可以实现,但我想问一下React是否提供了更正式的方式(例如仍然能够使用React.PropTypes.string.isRequired
),因为这样更容易理解正在发生的事情。 - PhilVargfoo: isKeyOfProp('options')
。 - Brigand