使用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) 我有以下组件触发了no-shadow
ESlint错误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规则的同时避免警告?
我知道我可以添加注释来抑制警告,但是对每个组件执行此操作似乎都是多余且乏味的.
我正在使用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) 我"eslint-config-airbnb": "^6.1.0",
用来保持我的JavaScript清洁.
我的linter对看似合法的代码不满意:
看起来这可能是一个持续的问题.有没有人对OCD开发者有什么建议如何在此期间解决这个问题?也许禁用此规则或其他?
如何在基于WebStorm/IntelliJ的产品的自闭标签中的结束标记之前包含空格?
默认设置轮流<ReactComp />
到<ReactComp/>
,这是不合规矩的(一个JSX-空间之前关闭的常用AirBNBs的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
在Atom Editor中,我安装了以下插件
它们似乎无法识别JSX语法.
我有它在命令行上工作但必须使用像esprima-fb
和的其他插件eslint-plugin-react
.看起来Atom编辑器没有这样的插件,想知道你是否有人知道如何解决这个问题.
我已经为我的WebStorm项目指定了eslint配置.但它似乎不适用于代码重新格式化功能.例如,它继续格式化import { something } from 'somewhere'
为import {something} from 'somewhere'
.
有没有办法让WebStorm根据eslint配置格式化代码?
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
.
那么如何将上面的组件改为纯函数呢?
谢谢你的帮助.
我有一个来自 @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 ×10
reactjs ×7
javascript ×2
webstorm ×2
atom-editor ×1
ecmascript-6 ×1
react-hooks ×1
react-jsx ×1
react-redux ×1
redux ×1