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>
        );
    }
});
cuadraman
źródło

Odpowiedzi:

82

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

/* eslint react/prop-types: 0 */
Gyandeep
źródło
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.

JaysQubeXon
źródło
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
    }
}
Leopold Kristjansson
źródło
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 */
cuadraman
źródło
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>);
ROCZNIE
źródło