具有布尔属性的ReactJS三元运算符

时间:2020-10-21 18:59:22

标签: reactjs ternary

我正在尝试将三元运算符与布尔属性一起使用

app.js如下:

import React from 'react';
import  HouseFull  from './HouseFull';

function App() {
  return (
    <div>
    <h1> Hello2 </h1>
    <HouseFull hasOpening="{false}" />


    </div>
    
  );
}

反应成分如下

import React, { Component } from 'react';

class HouseFull extends Component {

    render() {
        return (
            <div>
                 
                <h1> {this.props.hasOpening} </h1>
                <h1> {this.props.hasOpening ? "Available" : "No Vacancy"} </h1>
                
            </div>
        )

    }

}

export default HouseFull;

如果我将hasOpening传递为true或false,则第二个h1标记的结果相同 如果我通过,则显示以下内容

{true}
available

如果我通过错误,则会显示以下内容

{false}
available

我怀疑三元运算符的语句中有问题,但无法弄清楚。布尔标志的值正确反映在outpur的第一个h1标签中

2 个答案:

答案 0 :(得分:2)

您正在传递字符串作为中的道具。您需要传递布尔值。

<HouseFull hasOpening={false} />

否则,您将必须以以下方式签入HouseFull组件,

 <h1> {this.props.hasOpening === "{false}" ? "Available" : "No Vacancy"} </h1>

答案 1 :(得分:1)

三元运算符很好,但是您传递的是 string 而不是 boolean 。非空字符串将始终取值为 true ,这就是为什么在切换时什么也没发生。

List<String> greetings = completableFuture.get();