【发布时间】:2016-09-30 17:12:47
【问题描述】:
我习惯这样写渲染可选组件:
var Foo = React.createClass({
render: function() {
var length = 0;
return <div>Foo {length && <Bar />}</div>;
}
});
if 这个简写在if/else in JSX guide 中被提及为立即调用的函数表达式。然而,自从我最新的 React 更新后,它开始渲染 0 而不是 null。
为什么会这样?
【问题讨论】:
-
在您的示例中,
test是否意味着length? -
尝试
{!!length && <Bar />}进行表达式真值测试。基本上将长度强制转换为布尔值,以便可以在表达式中使用。 -
为什么不只是
length ? <Bar /> : void(0) -
@AvraamMavridis IMO 对于跨越多行的复杂组件看起来有点丑
标签: reactjs react-jsx conditional-operator jsx