JSX中的混合运算符

时间:2017-01-27 17:21:48

标签: reactjs jsx

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

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

虽然这在技术上有效,但ES lint警告说“非混合运营商”。这是在JSX中使用的安全模式吗?

2 个答案:

答案 0 :(得分:7)

来自the ESLint documentation

禁止混合使用不同的运营商(非混合运营商)

用括号括起复杂的表达式,澄清了开发人员的意图,使代码更具可读性。当规则中连续使用不带括号的运算符时,此规则会发出警告。

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*/

如果您不希望收到有关混合运营商的通知,则可以安全地禁用此规则。

希望这有帮助。

答案 1 :(得分:0)

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

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

对我有用。