React - 三元运算符和声纳
Posted
技术标签:
【中文标题】React - 三元运算符和声纳【英文标题】:React - ternary operator and sonar 【发布时间】:2021-12-29 10:17:23 【问题描述】:如何用三元运算符解决这个问题,为什么声纳不接受它?
【问题讨论】:
请将代码作为文本而不是图像。 Why not upload images of code/errors when asking a question? 老实说,*** 应该开发一个服务来读取人们发布的图片中的所有文本 :) 只是一个想法,现在连 mac 都支持了。 @windmaomao 在代码上使用 OCR 的问题是它引入了一个可能添加错字的地方。此外,复制粘贴文本可以说比截屏更容易,而且肯定更可靠。 【参考方案1】:这不是一个简单的运算符。这可能是故意的,但你必须知道这里发生了什么。
const a = flag ? (b = 2) : null
你会得到如下结果
if (flag) b = 2
const a = flag ? b : null
所以基本上我不认为它抱怨条件语句,而是更多地抱怨潜在的分配。
也许我们可以把代码改成这样,看看它是否有效。
if (flag) statement
const a = conditional assignment
【讨论】:
我遇到了同样的问题,即使代码是例如:isEditing ? setSomething : setSomethingElse() ;setSomethingElse()
是同样的想法,不是吗? :) 所以我想它希望你分别做两件事,声明和赋值。我知道这有点奇怪。但是这句话并不纯粹,这可能是它抱怨的地方。
如果我为任何三元做这样的事情:if(isEditing) doSomething();否则 doSomethingElse();使用这种方法我可以解决它,但我想知道是否可以使用三元运算符
事情就是这样,这取决于你在声明中做了什么。 const a = true ? a.find() : null
,这是纯粹的。但是,如果您这样做const a = true ? setState(3) : null
。这是不好的。为什么?你正在改变外部状态。所以最好用if
语句来写。我想,底线是,我们不想在三元运算符中隐藏太复杂的东西。
好的,谢谢!我会试试的以上是关于React - 三元运算符和声纳的主要内容,如果未能解决你的问题,请参考以下文章
这些在 React 中使用三元运算符有条件地应用内联样式的方法在性能上是不是有任何差异?