[英]Conditionally Render Child Component within Parent Component
我有一個具有Column
子組件的父組件DataTable
。 如果 prop 設置為 true,我想包含一個特定的Column
子組件。 我試過邏輯 && 和三元運算符。 問題是我無法將任何 null 或 undefined 值傳遞給DataTable
。 當this.props.hasMiddleName
為 false 時,邏輯 && 和三元運算符似乎為DataTable
提供了一個 false、null 或 undefined 值作為子項。 如何修復此代碼,以便在this.props.hasMiddleName
為 false 時不傳遞任何虛假值?
<DataTable dataUrl={this.props.url}>
<Column Header={"First Name"} />
{ this.props.hasMiddleName &&
<Column Header={"Middle Name"} />
}
<Column Header={"Last Name"} />
</DataTable>
您應該在另一個函數中創建一個子數組。
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
您調用將呈現其子項的函數。
<DataTable dataUrl={this.props.url}>
{this.renderChildren()}
</DataTable>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.