未检测到 ESLint 的 React Prop-Types

React Prop-Types not detected ESLint

我的反应页面上有这个:

import PropTypes from 'prop-types';

...然后

  componentWillMount() {
    this.props.myfunction();
  }

...最后:

MyComponent.PropTypes = {
  myfunction: PropTypes.func,
};

为什么 ESLine 仍然抱怨:

"ESLint: 'myfunction' is missing in props validation" ?

尝试为您的 propTypes 声明使用小写字母:

MyComponent.propTypes = {
  myfunction: PropTypes.func,
};

这里的区别是PropTypes(大写“P”)是你的节点包,而propTypes(小写)是你组件中对象的名称。


演示

class MyApp extends React.Component {
  componentWillMount() {
    this.props.myFunction();
  }
  render() {
    return (<p>hello</p>);
  }
}

MyApp.propTypes = {
  myfunction: PropTypes.func,
};

ReactDOM.render(<MyApp myFunction={() => {console.log("foo bar")}} />, document.getElementById("myApp"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://unpkg.com/prop-types/prop-types.min.js"></script>
<div id="myApp"></div>