javascript - 为什么这个 setState 是这样的,它是如何工作的?
问题描述
抱歉,我不知道如何搜索这种问题,也没有找到任何答案,但我对这段代码感到很困惑,它是一个用于 OTP 验证的 setState 函数:
setCode((currCode) =>
currCode
.split('')
.map((ch, i) => (i !== idx ? ch : isCharNumber ? val : isEmpty ? '_' : ch))
.join(''),
);
我了解地图部分,我只是想知道加入功能后的那个逗号“,”。为什么?如果我删除该代码有效,但 ESlint 告诉我把它放在最后。它返回一个对象吗?它只是通过状态"____"
(四个下划线)并将每个更改_
为数字。如果有人向我解释这一点并告诉我如何搜索和寻找这种混淆,我真的很感激。泰
解决方案
它返回一个对象吗?
不。
我只是想知道加入函数之后的那个逗号“,”。为什么?
在现代 JavaScript 中,在函数调用的最后一个参数之后(以及函数参数列表中的最后一个参数之后)可以有一个逗号,如下所示:
example(
firstArg,
secondArg,
thirdarg,
// ^−−−−−−−−−−−− optional
)
以后添加/删除参数时很方便,不必担心添加/删除逗号。
这就是您的代码中发生的事情,setCode
(箭头函数)有一个参数,后跟一个逗号。
如果我删除该代码有效,但 ESlint 告诉我把它放在最后。
ESLint 可以配置为在函数参数列表中需要尾随逗号;显然它在您的设置中是这样配置的。如果您不喜欢该规则,您可以将其关闭(在私人项目中)或与您的团队讨论(在团队项目中)。
推荐阅读
- java - 使用 MongoDB Spark 连接器从 MongoDB 中使用集合模式读取数据集
- spring-boot - 是否可以让 Intellij 插件在后台运行 Springboot api?
- java - java.lang.module.FindException:找不到模块
- javascript - 动态创建元素上的事件绑定而不多次调用事件?
- facebook - Facebook 公司帐户:无法永久更改站点信息和 URL
- hadoop - 为什么 Hive 2.1 允许多个记录具有相同的主键?
- redux - redux dispatch 后重新渲染
- python - Hangman tkinter 图像没有显示在顶层窗口中,为什么?
- javascript - Discord bot 没有获得所有成员
- algorithm - 最大和寻路的动态规划解