如何解决如何验证按值传递给组件的道具?
我有一个接受value
道具的组件。
const MyComponent = ({ value }) => { ... }
我希望此值始终是一个大于0且小于1000的数字。
我仅出于测试目的而对此进行验证,以防万一我将错误的值传递给组件,以便立即知道我做错了什么。
我应该只编写简单的if语句引发错误吗?像这样吗?
const MyComponent = ({ value }) => {
if (value < 0 || value > 1000) {
throw new Error("Value is not in range");
}
}
有更好的方法吗?
感谢您的帮助:)
解决方法
如果我理解正确,那么问题将更多地围绕“最佳实践是什么?”。
如果是这样,则您想了解有关Guard Clauses
的更多信息 ,好吧,我不记得当时想要达到的目标,但现在我知道了我要寻找的东西,即自定义PropType验证器
MyComponent.propTypes = {
value: (props,propName,componentName) => {
const val = props[propName];
if (val < 0 || val > 1000) {
return new Error(
'Invalid prop `' + propName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
}
};
也许将来有人会发现它有用:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。