jsx-eslint/eslint-plugin-react

`react/no-unused-prop-types` with reassigning this

Open

#1935 aperta il 14 ago 2018

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)JavaScript (2797 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (8630 star)
Metriche merge PR
 (Merge medio 1g 17h) (3 PR mergiate in 30 g)

Descrizione

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",

Guida contributor