Làm cách nào để tắt quy tắc phản ứng / chống kiểu ESLint trong một tệp?


84

Tôi đang sử dụng ReactESLintvới eslint-plugin-react.

Tôi muốn disablecác prop-typesquy tắc trong một tập tin.

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

Câu trả lời:


79

Chỉ cần đặt cái này lên đầu tệp của bạn:

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

Đã thử và nó hoạt động tốt. Đó là một cách tiếp cận rõ ràng hơn. Cảm ơn.
cuadraman

149

nếu bạn chỉ có một tệp mà bạn muốn tắt xác thực kiểu chống đỡ, bạn có thể sử dụng:

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

trong trường hợp bạn có nhiều tệp, bạn có thể thêm vào .eslintrctệp của mình trong thư mục gốc một quy tắc để tắt xác thực kiểu prop:

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

để biết thêm các quy tắc, bạn có thể kiểm tra liên kết này đã giải quyết được vấn đề của tôi và nếu bất tiện, bạn cũng có thể đọc từ tài liệu github của eslint-plugin-react về cách tắt hoặc bật nó với các tùy chọn khác nhau.


"react/prop-types": "off"cũng hoạt động (và nó dễ đọc hơn một chút)
Rafael Tavares

25

Tôi phải làm:

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

điều này không làm việc cho tôi:

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

Để tắt toàn cầu trong tệp .eslintrc của bạn (phiên bản cũ v6.0 trở xuống):

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

Để tắt toàn cầu trong tệp .eslintrc của bạn (phiên bản mới trên v6.0):

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

Phần về quy tắc không chính xác kể từ năm 2020. Sử dụng `" quy tắc ": {" react / prop-styles ": 0}`
Jack Kinsella

8

Tôi đã phải bọc toàn bộ thành phần với các bình luận bỏ qua 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
Người hùng của tôi. Điều này giải quyết được lý do tại sao tôi không thể nhận được /* eslint-disable react/no-multi-comp */khi chỉ gói thành phần đầu tiên của tôi trong đó.
frandroid

/* eslint-disable react/prop-types */nên được đặt ở đầu tệp
VonAxt vào

6

Đôi khi tôi có các thành phần nhỏ trong cùng một tệp với tệp chính. Có propTypes dường như quá mức cần thiết. Sau đó, tôi làm một cái gì đó như thế này

// 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>);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.