何时在 React 中使用三元运算符而不是逻辑运算符以仅在有项目时有条件地呈现
When to use ternary operator over the logical operator in React to render conditionally only when there are items
我必须(有条件地)渲染一些 React JSX 标记,只有当它包含项目时(来自 api)。
return items?.length ? (
<div>
<MyBlock data={myBlockData} />
</div>
) : null;
但是三元空运算符(如上)或逻辑运算符之间有什么区别:
return items?.length && (
<div>
<MyBlock data={myBlockData} />
</div>
);
在我的情况下使用什么?
区别在于当你有 false(y) 条件时 JSX 将构建什么。
三元运算符将 return null
因此 DOM 节点上不会显示任何内容,而在逻辑运算符的情况下,false(y) 值将计算为 0 ,因此,您会看到“0”被添加为 DOM.
中的文本节点
如果您希望使用逻辑运算符有条件地呈现,最好添加后备。
return items?.length&& (
<div>
<MyBlock data={myBlockData} />
</div>
) ||
null;
我必须(有条件地)渲染一些 React JSX 标记,只有当它包含项目时(来自 api)。
return items?.length ? (
<div>
<MyBlock data={myBlockData} />
</div>
) : null;
但是三元空运算符(如上)或逻辑运算符之间有什么区别:
return items?.length && (
<div>
<MyBlock data={myBlockData} />
</div>
);
在我的情况下使用什么?
区别在于当你有 false(y) 条件时 JSX 将构建什么。
三元运算符将 return null
因此 DOM 节点上不会显示任何内容,而在逻辑运算符的情况下,false(y) 值将计算为 0 ,因此,您会看到“0”被添加为 DOM.
如果您希望使用逻辑运算符有条件地呈现,最好添加后备。
return items?.length&& (
<div>
<MyBlock data={myBlockData} />
</div>
) ||
null;