jsx-eslint/eslint-plugin-react
在 GitHub 查看`react/no-unused-prop-types` with reassigning this
Open
#1,935 建立於 2018年8月14日
enhancementhelp wanted
描述
Sorry if this is a duplicate, but I couldn't find it.
I get the ubiquitous PropType is defined but prop is never used when using the following (stripped down) code. I assume this is all because I am re-assigning this to self as if I replace self.props with this.props, everything works.
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import loggerShape from '../propTypes/logger';
class Video extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const self = this;
const { src, logger, contentType } = self.props;
...
function addListener(eventName, logMethod = 'info') {
self.player.on(eventName, () => {
logger[logMethod](`player event - ${eventName} - ${src}`);
});
}
addListener('abort', 'error');
setSource({
src,
type: contentType,
});
...
}
render() {
return (
<div className="video">
...
</div>
);
}
}
Video.propTypes = {
contentType: PropTypes.string.isRequired,
logger: loggerShape.isRequired,
src: PropTypes.string.isRequired,
};
export default Video;
ESLint versions
"eslint": "4.19.1",
"eslint-config-airbnb": "17.1.0",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-jest": "21.21.0",
"eslint-plugin-jsx-a11y": "6.1.1",
"eslint-plugin-react": "7.11.0",