标签: eslint

使用useEffect React Hook时如何解决缺少依赖项警告?

使用React 16.8.6(在以前的版本16.8.3中很好),当我尝试防止在获取请求上发生无限循环时,出现此错误

./src/components/BusinessesList.js
Line 51:  React Hook useEffect has a missing dependency: 'fetchBusinesses'.
Either include it or remove the dependency array  react-hooks/exhaustive-deps
Run Code Online (Sandbox Code Playgroud)

我一直找不到停止无限循环的解决方案。我想远离使用useReducer()。我确实在https://github.com/facebook/react/issues/14920找到了这个讨论,在这里可能的解决方案是You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.我不确定自己在做什么,所以我还没有尝试实现它。

我有这个当前设置,React hook useEffect永远/无限循环连续运行,唯一的注释是useCallback()我不熟悉的。

我目前的使用方式useEffect()(类似于,我一开始只想运行一次componentDidMount()

useEffect(() => {
    fetchBusinesses();
  }, []);
Run Code Online (Sandbox Code Playgroud)
const fetchBusinesses = () => {
    return fetch("theURL", {method: "GET"}
    )
      .then(res => normalizeResponseErrors(res))
      .then(res => {
        return res.json();
      }) …
Run Code Online (Sandbox Code Playgroud)

reactjs eslint create-react-app react-hooks

58
推荐指数
12
解决办法
5万
查看次数

使用mapDispatchToProps避免无阴影夹板错误

我有以下组件触发了no-shadowESlint错误FilterButton props.

import { setFilter } from '../actions/filter';


function FilterButton({ setFilter }) {
  return (
    <button onClick={setFilter}>Click</button>
  );
}

export default connect(null, { setFilter })(FilterButton);
Run Code Online (Sandbox Code Playgroud)

如何在保持简洁语法mapDispatchToProps和ESlint规则的同时避免警告?

我知道我可以添加注释来抑制警告,但是对每个组件执行此操作似乎都是多余且乏味的.

javascript reactjs eslint redux react-redux

56
推荐指数
5
解决办法
1万
查看次数

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

我正在使用React和ESLint与eslint-plugin-react.我想在一个文件中禁用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>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

reactjs eslint

54
推荐指数
6
解决办法
5万
查看次数

围绕箭头体的意外的块语句

"eslint-config-airbnb": "^6.1.0",用来保持我的JavaScript清洁.

我的linter对看似合法的代码不满意:

在此输入图像描述

看起来这可能是一个持续的问题.有没有人对OCD开发者有什么建议如何在此期间解决这个问题?也许禁用此规则或其他?

ecmascript-6 reactjs eslint

53
推荐指数
2
解决办法
3万
查看次数

在自闭标签之前在自闭标签中添加空格

如何在基于WebStorm/IntelliJ的产品的自闭标签中的结束标记之前包含空格?

默认设置轮流<ReactComp /><ReactComp/>,这是不合规矩的(一个JSX-空间之前关闭的常用AirBNBs的JavaScript风格指南).

intellij-idea webstorm reactjs eslint

53
推荐指数
2
解决办法
7679
查看次数

扩展“eslint”配置为格式化程序,但无法格式化“JavaScript”文件

我在 VS Code 中遇到 ESLint 间歇性问题。保存文件时,而不是对其进行格式化,状态栏中会显示此消息:

在此输入图像描述

显然没有人在谷歌上报告过这条消息。

当我说它是间歇性的时,它工作正常,然后计算机(MBP)崩溃了,重新启动时就是这种情况。它以前发生过,但我不记得我做了什么来解决它。

该应用程序是一个相当复杂的基于 Vue 的应用程序,基于预配置的模板。在 package.json 中:

    "@vue/cli-plugin-eslint": "^4.5.13",

    "babel-eslint": "^10.1.0",
    "eslint": "^7.31.0",
    "eslint-plugin-import": "^2.23.4",
    "eslint-plugin-vue": "^7.14.0",
Run Code Online (Sandbox Code Playgroud)

在 VS Code 工作区文件中:

        "editor.codeLens": true,
        "eslint.format.enable": true,
        "editor.codeActionsOnSave": {
          "source.fixAll.eslint": true,
        },
        "[javascript]": {
            "editor.defaultFormatter": "dbaeumer.vscode-eslint"
        },
        "[vue]": {
            "editor.defaultFormatter": "dbaeumer.vscode-eslint"
        },
        "eslint.validate": [
            "javascript"
        ],
        "debug.javascript.usePreview": true,
        "debug.javascript.usePreviewAutoAttach": true,
        "[jsonc]": {
            "editor.defaultFormatter": "dbaeumer.vscode-eslint"
        },
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何继续理解为什么 vscode-eslint 报告它无法格式化 JavaScript 文件。

编辑

这个关于 TypeScript 的问题给出了一些提示。当 ESLint 服务器重新启动或扩展主机承受很大压力时,似乎会导致此错误。

在我现在的项目中,大多数文件的格式都很好,尽管有一个文件始终失败。该文件被调用eslint.js,并且是构建过程的一部分,运行 eslint - 我不完全理解配置。我怀疑保存此文件会以某种方式导致 eslint 运行/重新加载,并且在发生这种情况时,eslint-vscode 尝试也运行它并失败。

javascript code-formatting eslint visual-studio-code vscode-eslint

53
推荐指数
3
解决办法
3万
查看次数

如何在Atom编辑器上为React配置ESLint

在Atom Editor中,我安装了以下插件

  1. 棉短绒
  2. 棉短绒,eslint

它们似乎无法识别JSX语法.

我有它在命令行上工作但必须使用像esprima-fb和的其他插件eslint-plugin-react.看起来Atom编辑器没有这样的插件,想知道你是否有人知道如何解决这个问题.

reactjs eslint atom-editor react-jsx

52
推荐指数
3
解决办法
4万
查看次数

如何根据eslint制作WebStorm格式代码?

我已经为我的WebStorm项目指定了eslint配置.但它似乎不适用于代码重新格式化功能.例如,它继续格式化import { something } from 'somewhere'import {something} from 'somewhere'.

有没有办法让WebStorm根据eslint配置格式化代码?

webstorm eslint

52
推荐指数
5
解决办法
2万
查看次数

如何解决`组件应该写成纯函数`在eslint-react中的错误?

class Option extends React.Component {
  constructor(props) {
    super(props);
    this.handleClickOption = this.handleClickOption.bind(this);
  }
  handleClickOption() {
    // some code
  }
  render() {
    return (
      <li onClick={this.handleClickOption}>{this.props.option}</li>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我使用eslint-config-airbnb检查上面的代码,它显示了一个错误消息Component should be written as a pure function.

那么如何将上面的组件改为纯函数呢?

谢谢你的帮助.

reactjs eslint

51
推荐指数
4
解决办法
4万
查看次数

禁用带有内联注释的 typescript-eslint 插件规则(no-explicit-any)

我有一个来自 @typescript-eslint 插件的 eslint 错误。

没想到。指定不同的 type.eslint(@typescript-eslint/no-explicit-any)

这是无隐含任何规则。仅在一个文件中,我想通过在文件顶部添加注释来禁用该规则。

如果我只是尝试标准的 eslint 禁用,编译器会抱怨:

/* eslint-disable  no-explicit-any */
Run Code Online (Sandbox Code Playgroud)

未找到规则“no-explicit-any”的定义。eslint(no-explicit-any)

我试图找到有关 TS 插件的内联规则的文档,但运气不佳。我也尝试过这样的各种组合:

/* typescript-eslint-disable no-implicit-any */
/* typescript-eslint: disable no-implicit-any */
/* typescript-eslint: disable noImplicitAny */
/* typescript-eslint-disable @typescript-eslint/no-implicit-any */
Run Code Online (Sandbox Code Playgroud)

没有 eslint 投诉,但错误不会消失。

如何禁用 typescript-eslint 规则?

eslint typescript-eslint

51
推荐指数
3
解决办法
4万
查看次数