Javascript html元素的React Js条件呈现未按预期工作
我正在添加条件来显示一个div元素,条件有一个变量,该变量为0,当它为0时,将显示0,而不是不显示任何内容 使用功能组件:Javascript html元素的React Js条件呈现未按预期工作,javascript,reactjs,Javascript,Reactjs,我正在添加条件来显示一个div元素,条件有一个变量,该变量为0,当它为0时,将显示0,而不是不显示任何内容 使用功能组件: 返回( {flag1&&flag2&&data1&&data1.length&&data2&&data2.length&&( 答案({data2.length}) )} ); 在上面的代码中,我希望如果任何变量都不是真的,那么它就不应该显示div元素,但我在UI中得到了0。 当所有条件都为真时,它工作正常。 我创建了一个项目来展示它是如何以一种意想不到的方式工作的 任何帮
返回(
{flag1&&flag2&&data1&&data1.length&&data2&&data2.length&&(
答案({data2.length})
)}
);
在上面的代码中,我希望如果任何变量都不是真的,那么它就不应该显示div元素,但我在UI中得到了0。
当所有条件都为真时,它工作正常。
我创建了一个项目来展示它是如何以一种意想不到的方式工作的
任何帮助都将不胜感激
已经花了一整天的时间调试,但找不到原因。return(
{flag1&&flag2&&data1&&data1.length&&data2&&data2.length(
答案({data2.length})
):null}
);
您应该开始使用三元运算符,而不是仅使用&&运算符,最终将使用内部呈现为0的div。您得到0是因为&&
操作员检查基本上表明您的条件是“错误的”
顺便说一句,你的情况看起来很好,你应该把它也放到常量中
这也可能对您有所帮助:return(
{flag1&&flag2&&data1&&data1.length&&data2&&data2.length(
答案({data2.length})
):null}
);
您应该开始使用三元运算符,而不是仅使用&&运算符,最终将使用内部呈现为0的div。您得到0是因为&&
操作员检查基本上表明您的条件是“错误的”
顺便说一句,你的情况看起来很好,你应该把它也放到常量中
这也可能对您有所帮助:您的问题来自这样一个事实,即data1.length
或data2.length
等于0
。它使您的条件解析为0
,因为true&&0==0
如果要避免这种情况,可以将代码更改为:
返回(
{flag1&&flag2&&data1&&data1.length!==0&&data2&&data2.length!==0&&(
答案({data2.length})
)}
);
您的问题来自以下事实:data1.length
或data2.length
等于0
。它使您的条件解析为0
,因为true&&0==0
如果要避免这种情况,可以将代码更改为:
返回(
{flag1&&flag2&&data1&&data1.length!==0&&data2&&data2.length!==0&&(
答案({data2.length})
)}
);
Put!!在所有数值之前,如果该数字存在且不是0,则为真!!在所有数值之前,如果该数字存在且不是0,则为真;如果flag1
或flag2
类型为number
,则为真。如果它们确实是只有2个有用值的标志,则应使用boolean
类型。@Valentin flag1和flag2是布尔值。在演示中,我将它们保留为false。如果flag1
或flag2
类型为number
,则应为false。如果它们确实是只有2个有用值的标志,则应使用boolean
类型。@Valentin flag1和flag2是布尔值。在演示中,我将它们保留为假。