如何在文件中禁用 ESLint react/prop-types 规则?

Posted

技术标签:

【中文标题】如何在文件中禁用 ESLint react/prop-types 规则?【英文标题】:How to disable ESLint react/prop-types rule in a file? 【发布时间】:2015-09-06 01:49:15 【问题描述】:

我将ReactESLinteslint-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>
        );
    
);

【问题讨论】:

这能回答你的问题吗? Turning off eslint rule for a specific file ESLint 与您的代码反应或其他无关。我在这个 answer 中提供了所有案例(单/多行/文件、部分/所有规则)的详细答案:***.com/a/56719951 【参考方案1】:

如果您只有一个文件想要禁用 prop-type 验证,您可以使用:

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

如果您有多个文件,您可以在根目录中的 .eslintrc 文件中添加一条规则来禁用 prop-type 验证:


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

有关更多规则,您可以查看解决了我的问题的 this link,不便之处,您还可以阅读 eslint-plugin-react 的 github 文档,了解如何使用各种选项禁用或启用它。

【讨论】:

"react/prop-types": "off" 也可以(而且可读性更强)【参考方案2】:

只需将其放在文件顶部即可:

/* eslint-disable react/prop-types */

【讨论】:

试过了,效果很好。这是一种更清洁的方法。谢谢。 我建议不要使用0,而是使用off。在与许多不同技能水平的开发人员合作时,最好是明确的,而不是要求他们知道0 代表off【参考方案3】:

我必须这样做:

/* 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": "react/prop-types": 0 `【参考方案4】:

我不得不用 eslint ignore cmets 包裹整个组件。

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

【讨论】:

我的英雄。这解决了为什么我在将第一个组件包装在其中时无法获得 /* eslint-disable react/no-multi-comp */ 的原因。 /* eslint-disable react/prop-types */ 应该放在文件的开头【参考方案5】:

有时我的小组件与主要组件在同一个文件中。那里 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>);

【讨论】:

【参考方案6】:

我必须在我的 .eslintrc 配置文件中执行此操作以禁用道具类型验证错误。

"rules": 
  "react/prop-types": "off"

【讨论】:

以上是关于如何在文件中禁用 ESLint react/prop-types 规则?的主要内容,如果未能解决你的问题,请参考以下文章

Eslint:如何禁用对给定文件的所有检查?

如何在文件中禁用 ESLint react/prop-types 规则?

如何在 vue-cli 3 上禁用 eslint?

如何在 VS Code 的 .vue 文件中禁用模板中特定行的 eslint 警告

为 TypeScript 文件禁用 ESLint

为 .ejs 文件禁用 eslint