Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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,我有一个父组件DataTable,它有列子组件。如果prop设置为true,我希望包含一个特定的列子组件。我试过逻辑&&和三元运算符。问题是我无法将任何空值或未定义的值传递给DataTable。当this.props.hasmidleName为false时,逻辑&&和三元运算符似乎向数据表提供了一个false、null或未定义的值。当this.props.hasmidleName为false时,如何修复此代码,使我不传递任何虚假值 <DataTable dataUrl={this.prop

我有一个父组件
DataTable
,它有
子组件。如果prop设置为true,我希望包含一个特定的
子组件。我试过逻辑&&和三元运算符。问题是我无法将任何空值或未定义的值传递给
DataTable
。当
this.props.hasmidleName
为false时,逻辑&&和三元运算符似乎向
数据表
提供了一个false、null或未定义的值。当
this.props.hasmidleName
为false时,如何修复此代码,使我不传递任何虚假值

<DataTable dataUrl={this.props.url}>
    <Column Header={"First Name"} />
    { this.props.hasMiddleName &&
       <Column Header={"Middle Name"} />
    }
    <Column Header={"Last Name"} />
</DataTable>

{this.props.hasmidleName&&
}

您应该在另一个函数中创建子函数数组

renderChildren = () => {
    let children = [<Column Header={"First Name"} />]
    if(this.props.hasMiddleName) {
        children.push(<Column Header={"Middle Name"} />)
    }
    children.push(<Column Header={"Last Name"} />)
    return children
}
<DataTable dataUrl={this.props.url}>
    {this.renderChildren()}
</DataTable>