当前位置: 首页 > 知识库问答 >
问题:

如何指定proptypes以允许可为空的、必需的prop值?

谢锦程
2023-03-14

对于我的项目,最好在组件道具中传递null值,以指示未指定的值(如果愿意,则为“已知未知”)。以这种方式使用null是我们团队的惯例。

通过组件prope类型定义,我希望为prop传递一个值,但允许它为null(而不是未定义),而不会触发警告的React prop类型验证。

所以用输入输出的方式重申一下:

  • 属性值=字符串/数字/对象/等--

这种行为如何才能完成?

一个想法是编写一些替代。is必需的,比如。is定义的,不会对空值发出警告,但是我不知道如何在不分叉或放弃道具类型库的情况下做到这一点。

共有1个答案

倪德业
2023-03-14

我不确定你是否可以让它以一种可链接的方式工作(我已经考虑了大概两分钟),但也许你可以使用一个自定义验证器?

function allowNull(wrappedPropTypes) {
  return (props, propName, ...rest) => {
    if (props[propName] === null) return null;
    return wrappedPropTypes(props, propName, ...rest);
  }
}

MyComponent.propTypes = {
  nullOrNumber: allowNull(PropTypes.number.isRequired)
};
 类似资料: