jsx-eslint/eslint-plugin-react

no-unused-prop-types rule does not recognise component that returns an array

Open

#1,682 opened on Feb 8, 2018

View on GitHub
 (6 comments) (2 reactions) (0 assignees)JavaScript (2,797 forks)batch import
enhancementhelp wantedreact 16

Repository metrics

Stars
 (8,630 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Example:

import React from 'react';
import PropTypes from 'prop-types';

const TestComponent = () => (
  ['one', 'two', 'three'].map(text => <div>{ text }</div>)
);

TestComponent.propTypes = {
  customClass: PropTypes.string,
};

export default TestComponent;

React 16 allows for arrays to be returned from components, but in the above example, the no-unused-prop-types seems to not recognise that customClass is unused. It does detect it when the component is changed to:

const TestComponent = () => {
  const componentArr = ['one', 'two', 'three'].map(text => <div>{ text }</div>);
  return <div>{ componentArr }</div>;
};

Contributor guide