Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 布尔值比较_Javascript_Reactjs - Fatal编程技术网

Javascript 布尔值比较

Javascript 布尔值比较,javascript,reactjs,Javascript,Reactjs,我有一个javascript代码。 我正在循环一组布尔值。 当'data.nextrow'为false时,我希望nextrow1也为false,但它正被设置为true console.log("before nextrow:",data.nextrow); **prints false** let nextrow1 = data.nextrow ? data.nextrow : true; console.log("after nextrow:",nextrow1); *

我有一个javascript代码。 我正在循环一组布尔值。
当'data.nextrow'为false时,我希望nextrow1也为false,但它正被设置为true

    console.log("before nextrow:",data.nextrow); **prints false**
    let nextrow1 = data.nextrow ? data.nextrow : true;
    console.log("after nextrow:",nextrow1); **prints true**
我希望nextrow1设置为FALSE

好,所以

data.nextrow?data.nextrow:true

这是

If data.nextrow is true = render all after ?
If data.nextrow is false = render all after :

使用它的方法之一是

If data.nextrow is true = render all after ?
If data.nextrow is false = render all after :

用于更改变量(真->假&假->真)

您只需使用:

function App() {

  const [isTrue, setisTrue] = useState(false)

  return (
    <div>
      <button onClick={() => setisTrue(!isTrue)}>Click for change boolean</button>
      {isTrue ? <h1>Now isTrue is true</h1> : <h1>Now isTrue is False</h1>}
    </div>
  );
}
函数应用程序(){
常量[isTrue,setisTrue]=useState(false)
返回(
setisTrue(!isTrue)}>单击以更改布尔值
{是真的吗?现在是真的:现在是假的}
);
}

您可以使用
约定

let nextrow1 = !!data.nextrow;

如果
data.nextrow
是一些错误的值(
0
false
null
),而不是字符串
“false”
,我在下面几行中实现了我的目标。如果它可以在一行完成,让我知道。data.nextrow可能为空

nextrow1  = false;
if(data.nextrow !== null){
        if(data.nextrow === false){
            nextrow1  = false;
        }
    }

如果您想以这种方式解释
null
(即
null
!=
false
),您可以这样做一行:

nextrow1 = !(data.nextrow !== null && data.nextrow === false)
如果data.nextrow为
null

nextrow1 = data.nextrow === null ? data.nextrow : !(data.nextrow === false)

如果data.nextrow为
null

,则会将nextrow1设置为
null
,为什么希望将其设置为
false
?您发布的代码不可能做到这一点。还要确保
data.nextrow
的值不是字符串“false”,因为字符串“false”不是
false
。当“data.nextrow”为false时,我希望nextrow1也为false,但它正在设置为true。它的钱包是假的。在控制台
a中以蓝色打印?b:c
表示“如果
a
测试为
true
,那么结果应该是
b
,否则
c
”a?b:c,如果a为空,则取c。如果a存在,则以b为例。这就是我想要的。它不是“条件呈现”,而是一个简单的JavaScript三元表达式。不涉及渲染;这只是表达式求值。a?b:c,如果a为空,则取c。如果a存在,则以b为例。这就是我想要的。没错,所以条件呈现只是实现表达式求值的选项(a==null){setState(c)}(如果a!==null){setState(b)},尽管我建议在面向人类的代码中坚持使用
Boolean(data.nextrow)
,并让机器(minifier)将其转换为
!!data.nextrow
nextrow1 = data.nextrow === null ? data.nextrow : !(data.nextrow === false)