Оператор распространения на компоненте отключает правило react / prop-types в eslint-config-airbnb

Проблема, с которой я сталкиваюсь, заключается в том, что когда я добавляю атрибуты распространения в компонент, правило react / prop-types перестает работать:

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

import Button from './Button';

const LoginFacebook = ({
      label, ...props
    }) => (
      <Button
        {...props} // if I remove this line then eslint shows me the react/proptypes error
      >
        {label}
      </Button>
    );

.eslintrc:

{
  "extends": "airbnb",
  "parser": "babel-eslint",
  "rules": {
    "max-len": ["error", { "code": 80, "ignoreUrls": true }],
    "no-console": [2]
  },
  "env": {
    "browser": true
  }
}

.package.json

"eslint": "^4.19.1",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.1",
"eslint-plugin-react": "^7.11.1",

и вот как я использую этот компонент в контейнере входа в систему:

...    
render() {
       return (
        <Grid>
          <GridCell span = "6" phone = "4" tablet = "8">
            <LoginFacebook
              onLoginSuccess = {this.onLoginSuccess}
              onLoginFailure = {this.onLoginFailure}
            />
          </GridCell>
        </Grid>
       )
    }

пожалуйста, предоставьте коды родительского компонента компонента LoginFacebook, я думаю, что смогу помочь

You Nguyen 26.09.2018 17:41

вы про импортные файлы? компонент Button - это простой тег кнопки

Lido Fernandez 26.09.2018 19:03

Компонент Button является дочерним по отношению к компоненту LoginFacebook. Укажите родительский элемент компонента LoginFacebook в дереве компонентов, потому что я просто хочу посмотреть, как вы передаете данные компоненту LoginFacebook.

You Nguyen 26.09.2018 19:07

ах, хорошо, без проблем спасибо за вашу помощь

Lido Fernandez 26.09.2018 19:13

Похоже, вы не передаете никаких реквизитов под названием «ярлык», верно?

You Nguyen 26.09.2018 19:17

Метка в этом случае находится в LinkedinButton defaultProps, забавно то, что когда я добавляю атрибуты распространения к компоненту Button, тогда линтер eslint не выдает мне ошибку, что для опоры требуется тип свойства.

Lido Fernandez 26.09.2018 19:28

Кажется, это было исправлено с помощью eslint-plugin-react v7.12.0 + см. github.com/yannickcr/eslint-plugin-react/pull/1939 и github.com/yannickcr/eslint-plugin-react/pull/1939 для получения дополнительной информации

Cyril Durand 07.01.2019 15:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
7
1 653
0

Другие вопросы по теме