未检测到 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>
我的反应页面上有这个:
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>