簡體   English   中英

反應:如何有條件地渲染?

[英]React: How to conditionally render?

我有三個組成部分A,B和C。

我有兩個標志showA和showB。

  • 如果ShowA和ShowB為false,則渲染C。
  • 如果ShowA為true,則僅渲染A。
  • 如果showB為true,則僅渲染B。

我該如何實現?

您可以通過不同的方式來實現它。

多次退貨

render() {
    const { showA, showB } = this.state;
    if (showA) return <A />
    if (showB) return <B />
    return <C />
}

與'&&'運算符內聯

render() {
    const { showA, showB } = this.state;
    return (
        <div>
            {(showA && !showB) && <A />}
            {(showB && !showA) && <B />}
            {(!showA && !showB) && <C />}
        </div>
    )
}

另請參閱: https : //reactjs.org/docs/conditional-rendering.html

  class APP extends React.Component {
    constructor() {
      super();
      this.state = { showA: false, showB: false };
    }

    render() {
      const {showA, showB} = this.state;
      return [showA && <A/>, showB && <B />];
   }
 }

我想你的意思是showA和showB都為false時顯示C組件

假設您的showA和showB是狀態屬性:

render() {
  return (
    this.state.showA 
    ? <A />
    : this.state.showB ? <B />
    : <C />
  )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM