Как отключить правило ESLint response / prop-types в файле?

88

Пользуюсь Reactи ESLintс eslint-plugin-react.

Я хочу , чтобы disableв prop-typesправила в одном файле.

var React = require('react'); 
var Model = require('./ComponentModel');

var Component = React.createClass({
/* eslint-disable react/prop-types */
    propTypes: Model.propTypes,
/* eslint-enable react/prop-types */
    render: function () {
        return (
            <div className="component">
                {this.props.title}
            </div>
        );
    }
});
Cuadraman
источник

Ответы:

82

Просто поместите это поверх своего файла:

/* eslint react/prop-types: 0 */
Gyandeep
источник
Пробовал, и все работает нормально. Это более чистый подход. Благодарю.
cuadraman 08
161

если у вас есть только один файл, который вы хотите отключить проверку типа пропа, вы можете использовать:

/* eslint react/prop-types: 0 */

в случаях, когда у вас есть несколько файлов, вы можете добавить к своему .eslintrcфайлу в корневом каталоге правило для отключения проверки типа пропуска:

{
 "plugins": [
     "react"
  ],
  "rules": {
    "react/prop-types": 0
  }
}

для получения дополнительных правил вы можете проверить эту ссылку, которая решила мою проблему, а для неудобств вы также можете прочитать в документации github eslint-plugin-react о том, как отключить или включить его с помощью различных параметров.

JaysQubeXon
источник
1
"react/prop-types": "off"тоже работает (и он немного более читабелен)
Рафаэль Таварес
27

Пришлось сделать:

/* eslint react/forbid-prop-types: 0 */

это не сработало для меня:

/* eslint react/prop-types: 0 */

Чтобы отключить глобально в файле .eslintrc (старая версия v6.0 или ниже):

{
    "rules": {
        "react/forbid-prop-types": 0
    }
}

Чтобы отключить глобально в файле .eslintrc (новая версия выше v6.0):

{
    "rules": {
        "react/prop-types": 0
    }
}
Леопольд Кристьянссон
источник
Часть о правилах неверна по состоянию на 2020 год. Используйте `" rules ": {" react / prop-types ": 0}`
Джек Кинселла
8

Мне пришлось обернуть весь компонент комментариями игнорирования eslint.

var React = require('react'); 
var Model = require('./ComponentModel');

/* eslint-disable react/prop-types */
var Component = React.createClass({

    propTypes: Model.propTypes,

    render: function () {
        return (
            <div className="component">
                {this.props.title}
            </div>
        );
    }
});
/* eslint-enable react/prop-types */
Cuadraman
источник
1
Мой герой. Это решило, почему я не смог получить, /* eslint-disable react/no-multi-comp */просто заключив в него свой первый компонент.
frandroid
/* eslint-disable react/prop-types */следует помещать в самое начало файла
VonAxt
7

Иногда у меня есть небольшие компоненты в том же файле, что и основной. Там propTypes кажется излишним. Тогда я обычно делаю что-то вроде этого

// eslint-disable-next-line react/prop-types
const RightArrow = ({ onPress, to }) => (<TouchableOpacity onPress={() => onPress(to)} style={styles.rightArrow}><Chevrons.chevronRight size={25} color="grey" /></TouchableOpacity>);
PA
источник