У меня был этот валидатор (array
спецификации c shape) для свойства defaultValue:
defaultValue: PropTypes.arrayOf(PropTypes.shape({
key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
value: PropTypes.string.isRequired
}))
, но теперь defaultValue
также может иметь тип string
. Поэтому я пытаюсь использовать собственный валидатор:
defaultValue: function (props, propName, componentName) {
if (typeof props[propName] === "string"){
} else if (props[propName] instanceof Array){
//how to add old functionality here?
} else {
return new Error(
`Invalid prop ${propName} supplied to ${componentName}. Validation failed`
)
}
}
Могу ли я использовать старый PropTypes.arrayOf(....)
внутри собственного валидатора? Я хочу добавить старую валидацию в новую пользовательскую функцию валидатора. Если использование PropTypes
невозможно, как этого добиться с помощью пользовательского кода?