jsx-eslint/eslint-plugin-react

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

Aperta

#1935 aperta il 14 ago 2018

 (3 commenti) (0 reazioni) (0 assegnatari)JavaScript (2734 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (9294 stelle)
Metriche merge PR
 (Nessuna PR mergiata 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