jsx-eslint/eslint-plugin-react

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

Aberta

#1.935 aberto em 14 de ago. de 2018

 (3 comentários) (0 reação) (0 responsável)JavaScript (2.733 forks)batch import
enhancementhelp wanted

Métricas do repositório

Stars
 (9.292 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

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

Guia do colaborador