jsx-eslint/eslint-plugin-react

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

Open

#1 935 ouverte le 14 août 2018

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)JavaScript (2 797 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (8 630 stars)
Métriques de merge PR
 (Merge moyen 1j 17h) (3 PRs mergées en 30 j)

Description

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

Guide contributeur