定义了 PropType 但从未使用过 prop

IT技术 reactjs jsx lint
2021-05-09 22:57:17
const propTypes = {
  prop1: PropTypes.string,
  prop2: PropTypes.string,
  prop3: PropTypes.number,
};

const something = (props) => ((props.props2 > 0 & props.prop1 === props.props3) ?
  t('translation/abc')
  : t('translation/def'));

为什么组件会PropType is defined but prop is never used为所有三个props抛出 lint 错误prop1, prop2, prop3

2个回答

这应该可以解决您的问题,让我们解构您的props,然后将 propTypes 分配给您的无状态组件。

const something = ({prop1, prop2, prop3}) => ((props2 > 0 & prop1 === props3) 
  ? t('translation/abc')
  : t('translation/def'));
  
something.propTypes = {
  prop1: PropTypes.string,
  prop2: PropTypes.string,
  prop3: PropTypes.number,
};

您永远不会将 propTypes 常量分配给您的函数,因此不会验证props。

如果你这样做

something.propTypes = propTypes;

linter 应该接受您的代码。