如何验证按值传递给组件的道具?

问题描述

我有一个接受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.'
      );
    }
  }
};

也许将来有人会发现它有用:)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...