如何验证按值传递给组件的道具?
How to validate props that are passed to a component by value?
我有一个组件接受 value
属性。
const MyComponent = ({ value }) => { ... }
我希望这个值始终是大于 0 且小于 1000 的数字。
我只想出于测试目的验证它,以防我向组件传递了错误的值,以便我立即知道我做错了什么。
我应该只写一个抛出错误的简单 if 语句吗?是这样的吗?
const MyComponent = ({ value }) => {
if (value < 0 || value > 1000) {
throw new Error("Value is not in range");
}
}
有没有更好的方法?
感谢您的帮助:)
如果我理解正确的话,这个问题更多地围绕 'whats the best practice?'。
如果是这样,您正在考虑进一步了解 Guard Clauses
好吧,我不记得我当时想要实现什么,但我现在知道我在寻找什么,那就是 Custom PropType validator
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.'
);
}
}
};
也许以后有人会觉得它有用:)
我有一个组件接受 value
属性。
const MyComponent = ({ value }) => { ... }
我希望这个值始终是大于 0 且小于 1000 的数字。
我只想出于测试目的验证它,以防我向组件传递了错误的值,以便我立即知道我做错了什么。
我应该只写一个抛出错误的简单 if 语句吗?是这样的吗?
const MyComponent = ({ value }) => {
if (value < 0 || value > 1000) {
throw new Error("Value is not in range");
}
}
有没有更好的方法?
感谢您的帮助:)
如果我理解正确的话,这个问题更多地围绕 'whats the best practice?'。
如果是这样,您正在考虑进一步了解 Guard Clauses
好吧,我不记得我当时想要实现什么,但我现在知道我在寻找什么,那就是 Custom PropType validator
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.'
);
}
}
};
也许以后有人会觉得它有用:)