Javascript 为什么这个React组件返回字符串';0';
当我编写这段代码时,我希望我的React组件不会显示任何内容。但是,它显示“0”。为什么会这样Javascript 为什么这个React组件返回字符串';0';,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,当我编写这段代码时,我希望我的React组件不会显示任何内容。但是,它显示“0”。为什么会这样 从“React”导入React; 从“react dom”导入react dom; 常量应用=()=>{ 常量对象={ 数组:[] } 返回( {object.array&&object.array.length&&( 试验 )} ); } render(React默认情况下忽略布尔值,但不忽略数字 即使array为空,它仍然是一个真实的值。如果array.length等于0,则不会渲染段落,因为0是
从“React”导入React;
从“react dom”导入react dom;
常量应用=()=>{
常量对象={
数组:[]
}
返回(
{object.array&&object.array.length&&(
试验
)}
);
}
render(React默认情况下忽略布尔值,但不忽略数字
即使array
为空,它仍然是一个真实的值。如果array.length
等于0
,则不会渲染段落,因为0
是一个虚假的值,但仍然会渲染它(array.length
-0),因为基本上0
是一个数字
我建议您将array.length
计算为一个布尔值,这样它就不会被渲染
{object.array && !!object.array.length && (
因为object.array&&object.array.length&&…
将计算为第一个'falsy'值,如果所有其他值都是'truthy',则计算为最后一个值。object.array.length
大概是0,所以得到0。0
是falsy,但它被认为是truthy
,为什么?@Vencovsky哪里被认为是tru你的
?哦,现在我明白了,它不是真的,但它返回它的值,即0