如何在 useCallback 中使用 ESlint 允许 IIFE 语法?

Posted

技术标签:

【中文标题】如何在 useCallback 中使用 ESlint 允许 IIFE 语法?【英文标题】:How to allow IIFE syntax with ESlint in useCallback? 【发布时间】:2021-05-03 14:54:36 【问题描述】:

我有以下 lint 错误:

它会出现Insert ';' prettier/prettier 错误,如果我让我的 IDE 修复它,我在第一行有一个分号:

;(async () => 

然后它抱怨违反了另一条规则:unnecessary semicolon 并让我删除分号等。

如何在我的项目中允许 IIFE 语法?

【问题讨论】:

为什么首先要有 IIFE? async/await 没用,因为您没有对 Promise 做任何事情。 这不是我的意思,我不是在寻找代码审查,我只是尝试过这个,我很可能需要这个合成器 第 2 行:(async() => )() 要么不使用 IIFE(或 async/await),要么调整 prettier 和 ESlint 规则。好像是caused by the no-semi option of prettier。 或者添加一个简单的// eslint-disable-next-line no-extra-semi 【参考方案1】:

没有办法让更漂亮和风格的 lint 规则都满意,因为它们执行不同的约定。

如果您使用 prettier - 您需要禁用风格 lint 规则。 如您所见,风格化 lint 规则可以并且与 prettier 冲突。

这在prettier docs中有所提及。

使用eslint-config-prettier 可以帮助您更正配置。

【讨论】:

以上是关于如何在 useCallback 中使用 ESlint 允许 IIFE 语法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在功能组件中混合使用 useCallback 和 useRef

如何在自定义挂钩上使用 useCallback?

反应钩子 useCallback 与循环内的参数

eslin常规t语法检查

我们应该在 React 功能组件的每个函数处理程序中使用 useCallback

reac中useCallback使用