Wie deaktiviere ich die ESLint React / Prop-Typ-Regel in einer Datei?

84

Ich benutze Reactund ESLintmit eslint-plugin-react.

Ich möchte disabledie prop-typesRegel in einer Datei.

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
quelle

Antworten:

79

Legen Sie dies einfach oben auf Ihre Datei:

/* eslint react/prop-types: 0 */
Gyandeep
quelle
Versuchte es und es funktioniert gut. Es ist ein sauberer Ansatz. Vielen Dank.
Cuadraman
149

Wenn Sie nur eine Datei haben, die Sie deaktivieren möchten, können Sie Folgendes verwenden:

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

In Fällen, in denen Sie mehrere Dateien haben, können Sie Ihrer .eslintrcDatei in Ihrem Stammverzeichnis eine Regel hinzufügen , um die Überprüfung des Requisitentyps zu deaktivieren:

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

Weitere Regeln finden Sie unter diesem Link , der mein Problem gelöst hat. Aus Unannehmlichkeiten können Sie auch in der Github- Dokumentation von eslint-plugin-react nachlesen, wie Sie es mit verschiedenen Optionen deaktivieren oder aktivieren können.

JaysQubeXon
quelle
"react/prop-types": "off"funktioniert auch (und ist etwas besser lesbar)
Rafael Tavares
25

Ich musste es machen:

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

das hat bei mir nicht funktioniert:

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

So deaktivieren Sie global in Ihrer .eslintrc-Datei (alte Version v6.0 oder niedriger):

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

So deaktivieren Sie global in Ihrer .eslintrc-Datei (neue Version über Version 6.0):

{
    "rules": {
        "react/prop-types": 0
    }
}
Leopold Kristjansson
quelle
Der Teil über Regeln ist ab 2020 falsch. Verwenden Sie "Regeln": {"Reaktion / Requisitentypen": 0}
Jack Kinsella
8

Ich musste die gesamte Komponente mit den Eslint-Ignorierkommentaren umschließen.

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
quelle
1
Mein Held. Dies löste, warum ich es nicht bekommen konnte, /* eslint-disable react/no-multi-comp */als ich nur meine erste Komponente darin einwickelte.
frandroid
/* eslint-disable react/prop-types */sollte ganz am Anfang einer Datei stehen
VonAxt
6

Manchmal habe ich kleine Komponenten in derselben Datei wie die Hauptdatei. Dort scheint propTypes übertrieben. Dann mache ich so etwas

// 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
quelle