繁体   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