JSX 中的混合运算符

IT技术 reactjs jsx
2021-04-29 11:01:45

我想在 JSX 中使用混合运算符,例如:

{datas && datas.map(function(data,i){ return <MyComponent key={i} />}) || []}

虽然这在技术上可行,但 ES lint 警告“非混合运算符”。这是在 JSX 中使用的安全模式吗?

2个回答

ESLint 文档

禁止混合不同的运算符(非混合运算符)

用括号将复杂的表达式括起来阐明了开发人员的意图,这使代码更具可读性当在表达式中连续使用不同的运算符而没有括号时,此规则会发出警告。

var foo = a && b || c || d;    /*BAD: Unexpected mix of '&&' and '||'.*/
var foo = (a && b) || c || d;  /*GOOD*/
var foo = a && (b || c || d);  /*GOOD*/

如果您不想收到有关混合运算符的通知,则禁用此规则是安全的。

希望这可以帮助。

您可以像这样将括号括起来。它不会显示该警告。

{datas && (datas.map(function(data,i){ return <MyComponent key={i} />}) || [])}

它对我有用。