我得到一个下面的lint错误,谷歌搜索错误无法解决问题。 17:20错误'playerLaughing'在道具验证react / prop-types
提供以下代码
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;
答案 0 :(得分:7)
您需要在组件上设置静态属性“propTypes”以满足此lint错误。
以下是有关React PropTypes的一些信息:React Docs
您可以添加与此类似的部分:
import React from 'react';
import PropTypes from 'prop-types';
class Swimming extends React.Component {
static propTypes = {
jumping: PropTypes.bool,
playerLaughing: PropTypes.func
};
constructor(props) {
...
}
您需要安装'prop-types'npm包。
答案 1 :(得分:6)
您应该将propTypes
添加到您的组件中:
例如:
// this goes outside the class deceleration
Swimming.propTypes = {
playerLaughing: PropTypes.func,
jumping: PropTypes.bool,
//... other props you will use in this component
};
如果您希望它在class
减速范围内,您可以使用静态类字段,如下所示:
// this goes inside the class deceleration
static propTypes = {
playerLaughing: PropTypes.func,
jumping: PropTypes.bool,
//... other props you will use in this component
};
};
您应该安装并导入PropTypes
。请参阅Docs
npm install --save prop-types
import PropTypes from 'prop-types'; // ES6
var PropTypes = require('prop-types'); // ES5 with npm