Як вимкнути правило реагування ESLint / prop-types у файлі?


84

Я використовую 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>
        );
    }
});

Відповіді:


79

Просто розмістіть це поверх вашого файлу:

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

Спробував, і це чудово працює. Це більш чистий підхід. Дякую.
cuadraman

150

якщо у вас є лише один файл, який ви хочете відключити перевірку типу prop, ви можете використовувати:

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

у випадках, коли у вас є кілька файлів, ви можете додати до свого .eslintrcфайлу у своєму кореневому каталозі правило, щоб вимкнути перевірку типу проп:

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

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


"react/prop-types": "off"також працює (і це трохи читабельніше)
Рафаель Таварес

25

Мені довелося зробити:

/* 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 ": {" response / 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 */

1
Мій герой. Це вирішило, чому я не зміг отримати, /* eslint-disable react/no-multi-comp */просто загортаючи в нього свій перший компонент.
frandroid

/* eslint-disable react/prop-types */слід розмістити на самому початку файлу
VonAxt

6

Іноді у мене є невеликі компоненти в одному файлі з основним. Там 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>);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.