使用useState挂钩时,两个go struct 化数组变量通常采用:foosetFoo的形式.

一些与此模板不同的示例包括:

const [foo, setfoo] = useState();    
const [foo, updateFoo] = useState();    
const [foo, fooSetter] = useState();    

在代码审查期间,我建议将上述示例更改为:

const [foo, setFoo] = useState();    

是否有一种方法可以对这种情况进行静态判断(ESLint)?

推荐答案

是的,通过eslint-plugin-react

您想要的规则是这个:https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/hook-use-state.md

来自文档:

此规则判断从React.useState()调用中分解的值和setter变量是否对称命名.

正确的例子:

import React from 'react';
export default function useColor() {
  // useState call is destructured into value + setter pair whose identifiers
  // follow the [thing, setThing] naming convention
  const [color, setColor] = React.useState();
  return [color, setColor];
}

在您的配置中:

...
"react/hook-use-state": [<enabled>, { "allowDestructuredState": <boolean> }]
...

如果出于某种原因您不想使用第三方插件,则可以判断该代码,并且您可以编写自己的规则.

绝对比必须在代码审查期间监管它好:)

Javascript相关问答推荐

JavaScript setSYS()是否有可能更早触发?

错误:找不到react-redux上下文值;请确保该组件包装在React原生Expo应用程序中的提供者中

响应式JS DataTable中的Bootstrap 5弹出程序无法正常工作

带对角线分隔符的图像滑动器

如何在alpinejs中显示dev中x-for的元素

如何访问react路由v6加载器函数中的查询参数/搜索参数

仅圆角的甜甜圈图表

Vue:ref不会创建react 性属性

格式值未保存在redux持久切片中

D3 Scale在v6中工作,但在v7中不工作

在这种情况下,如何 for each 元素添加id?

在grafana情节,避免冲突的情节和传说

使用ThreeJ渲染的形状具有抖动/模糊的边缘

使用领域Web SDK的Vite+Vue应用程序中的Web程序集(WASM)错误

Eval vs函数()返回语义

Puppeteer上每页的useProxy返回的不是函数/构造函数

用另一个带有类名的div包装元素

每隔3个项目交替显示,然后每1个项目交替显示

有没有办法通过使用不同数组中的值进行排序

MongoDB通过数字或字符串过滤列表