Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript html元素的React Js条件呈现未按预期工作_Javascript_Reactjs - Fatal编程技术网

Javascript html元素的React Js条件呈现未按预期工作

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。 当所有条件都为真时,它工作正常。 我创建了一个项目来展示它是如何以一种意想不到的方式工作的 任何帮

我正在添加条件来显示一个div元素,条件有一个变量,该变量为0,当它为0时,将显示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是布尔值。在演示中,我将它们保留为假。