PropType已定义,但从不使用prop

时间:2017-08-05 23:04:11

标签: reactjs jsx lint

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抛出lint错误prop1, prop2, prop3

2 个答案:

答案 0 :(得分:2)

这应解决您的问题,让我们解构您的道具,然后将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,
};

答案 1 :(得分:0)

您永远不会为您的函数指定propTypes常量,因此不会对道具进行验证。

如果你这样做

something.propTypes = propTypes;

linter应该接受你的代码。