首页 > 解决方案 > Eslint 错误:不要嵌套三元表达式

问题描述

我正在使用 React.js 开发一个项目,但使用 eslint 时出现错误:

Do not nest ternary expressions

这是我的代码:

const MyApp = () => {

return (
<>
{(var1 && var2) ? (
          <Tag1 />
        ) : error ? (
          <Tag2 />
        ) : null}
</>); 
}

你知道我该怎么做才能解决这个问题吗?我必须使用 if 但我认为在我的情况下我不能......

标签: reactjs

解决方案


这是由no-nested-ternaries eslint 规则引起的。

Linter 规则是关于如何编写代码的建议,它们指出了最佳实践,但不一定是真正的“错误”。

如果它在此处显示“错误”,那是因为有人(或预配置的规则集)决定将此规则启用为您的项目的“错误级别”。一般来说,除非您(或您团队中的某个人)想要禁止这种编码风格,否则无需更改您的代码。从技术上讲,它是完全有效的代码并且可以工作。

如果您在一个团队中,请与您的团队讨论该规则的含义。如果您一个人在您的项目中,请考虑是否需要此规则并在您的.eslintrc文件中禁用它。

就我个人而言,我认为大多数关于如何编写此代码的建议,而不是在其他答案中给出的,都会使其可读性降低很多,所以如果我是你,我会保留它并禁用该规则。


推荐阅读