Jak wyłączyć regułę reagowania / prop-types ESLint w pliku?


88

Używam Reacti ESLintz eslint-plugin-react.

Chcę disablez prop-typesreguły w jednym pliku.

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>
        );
    }
});

Odpowiedzi:


82

Po prostu umieść to na górze swojego pliku:

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

Wypróbowałem i działa dobrze. To czystsze podejście. Dzięki.
cuadraman

162

jeśli masz tylko jeden plik, który chcesz wyłączyć sprawdzanie poprawności typu prop, możesz użyć:

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

w przypadkach, gdy masz wiele plików, możesz dodać do swojego .eslintrcpliku w katalogu głównym regułę wyłączającą sprawdzanie poprawności typu prop:

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

Aby zapoznać się z dalszymi zasadami, możesz sprawdzić ten link, który rozwiązał mój problem, a jeśli chodzi o niedogodności, możesz również przeczytać w dokumentacji github eslint-plugin-react na temat tego, jak wyłączyć lub włączyć tę funkcję za pomocą różnych opcji.


1
"react/prop-types": "off"też działa (i jest trochę bardziej czytelny)
Rafael Tavares

27

Musiałem zrobić:

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

to nie zadziałało dla mnie:

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

Aby wyłączyć globalnie w pliku .eslintrc (stara wersja v6.0 lub starsza):

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

Aby wyłączyć globalnie w pliku .eslintrc (nowa wersja powyżej wersji 6.0):

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

Część dotycząca reguł jest niepoprawna na rok 2020. Użyj `" rules ": {" respond / prop-types ": 0}`
Jack Kinsella

8

Musiałem owinąć cały komponent eslint ignoruj ​​komentarze.

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
Mój bohater. To rozwiązało, dlaczego nie mogłem uzyskać, /* eslint-disable react/no-multi-comp */po prostu zawijając w niego mój pierwszy komponent.
frandroid

/* eslint-disable react/prop-types */należy umieścić na samym początku pliku
VonAxt

7

Czasami mam małe komponenty w tym samym pliku co główny. Wydaje się, że propTypes jest przesadą. Wtedy zwykle robię coś takiego

// 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>);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.