我想在JSX中使用混合运算符,例如:
{datas && datas.map(function(data,i){ return <MyComponent key={i} />}) || []}
虽然这在技术上有效,但ES lint警告说“非混合运营商”。这是在JSX中使用的安全模式吗?
答案 0 :(得分:7)
用括号括起复杂的表达式,澄清了开发人员的意图,使代码更具可读性。当规则中连续使用不带括号的运算符时,此规则会发出警告。
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} />}) || [])}
对我有用。