Reputation:
i am getting a below lint error, googled for the error not able to figure whats the problem. 17:20 error 'playerLaughing' is missing in props validation react/prop-types
provding the code below
C:\workspace\sports-dia-dashboard\src\components\sample-player\player-section.jsx
17:20 error 'playerLaughing' is missing in props validation react/prop-types
17:40 error 'id' is missing in props validation react/prop-types
23:9 warning Unexpected var, use let or const instead no-var
23:53 error 'jumping' is missing in props validation react/prop-types
28:32 warning There should be no space before '=' react/jsx-equals-spacing
28:32 warning There should be no space after '=' react/jsx-equals-spacing
30:37 error 'flying' is missing in props validation react/prop-types
33:21 warning Empty components are self-closing react/self-closing-comp
44:3 error Expected indentation of 4 spaces but found 2 indent
import React from 'react';
class Swimming extends React.Component {
constructor(props) {
super(props);
this.playerLaughing = this.playerLaughing.bind(this);
}
playerLaughing() {
//console.log("playerLaughing");
// debugger;
this.props.playerLaughing(this.props.id);
}
render() {
//console.log("render");
//console.log("accordion / the ExpandCollapse Section component");
var className = 'player-section' + (this.props.jumping ? ' jumping' : '');
return (
<div className={className} onClick={this.playerLaughing}>
<div className = "sports-player-question-flying sports-submenu-dropmenuHeader">
<h3>
{this.props.flying}
</h3>
<div className="up-arrow"></div>
</div>
<div className="body">
{this.props.children}
</div>
</div>
);
}
}
export default Swimming;
Upvotes: 7
Views: 12964
Reputation: 31024
You should add propTypes
to your component:
For example:
// this goes outside the class deceleration
Swimming.propTypes = {
playerLaughing: PropTypes.func,
jumping: PropTypes.bool,
//... other props you will use in this component
};
If you want it inside the class
deceleration you can use a static class field like so:
// this goes inside the class deceleration
static propTypes = {
playerLaughing: PropTypes.func,
jumping: PropTypes.bool,
//... other props you will use in this component
};
};
You should install and import PropTypes
. see the Docs
npm install --save prop-types
import PropTypes from 'prop-types'; // ES6
var PropTypes = require('prop-types'); // ES5 with npm
Upvotes: 7
Reputation: 584
You need to set the static property 'propTypes' on the component to satisfy this lint error.
Here is some info about React's PropTypes: React Docs
You would add a section similar to this:
import React from 'react';
import PropTypes from 'prop-types';
class Swimming extends React.Component {
static propTypes = {
jumping: PropTypes.bool,
playerLaughing: PropTypes.func
};
constructor(props) {
...
}
You'll need to install the 'prop-types' npm package.
Upvotes: 10