首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在react自定义组件中创建条件节

在react自定义组件中创建条件节
EN

Stack Overflow用户
提问于 2017-06-09 14:00:02
回答 2查看 1.2K关注 0票数 0

我正在创建一个呈现容器框的自定义组件。组件最初看起来如下所示:

代码语言:javascript
复制
import React from 'react';
import { Row, Col } from 'react-flexbox-grid';

const Box = (props) => (
    <div className="box">
        <Row between="xs" className="box-top">
            <span className="box-title">{props.title}</span>
        </Row>
        <Col xs={12} className="box-info">
            {props.content}
        </Col>
        <Col xs={12} className="box-bottom">
        </Col>
    </div>
);

export default Box;

它显示一个带有类框的div,其中包含用于生成外观的CSS。除了box-info外,内部div都是有条件的。有时,这个组件将与一个方框标题一起使用,而有时却不是。同样的情况发生在盒子底部。

当我使用它时,我想使用这样的东西:

代码语言:javascript
复制
<Box
    showTitle
    title={'Title'}
    content={'My content is here'}
/>

有时候是这样的:

代码语言:javascript
复制
<Box
    showTitle={false}
    showBottom={false}
    content={'My content is here'}
/>

如果使用showTitle = false或showBottom = false,如何设置道具以允许框标题和框底隐藏?

提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-09 14:08:58

您可以通过简单地省略它来编写showTitle={false}。*~)

有几种方法可以实现反应中的条件渲染。一种方法是

代码语言:javascript
复制
{props.showTitle &&
  <Row between="xs" className="box-top">
    <span className="box-title">{props.title}</span>
  </Row>
}

如果存在props.showTitle,它将呈现逻辑&&运算符之后的任何内容。

如果不满足条件,也可以使用三元运算符,如

代码语言:javascript
复制
{props.showTitle ? (
  <Row between="xs" className="box-top">
    <span className="box-title">{props.title}</span>
  </Row>
) : (
  <SomeOtherComponent />
)}

另外,您可以查看prop-types,以检查组件接收的props类型。

票数 2
EN

Stack Overflow用户

发布于 2017-06-09 15:40:23

还有第三种选择,即在JSX语法中使用生平

代码语言:javascript
复制
{(() => {
  if (isSomethingTrue === true) {
     return <MyComponent />
  } else {
     return 'Whoops!'
  }    
})()}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44459778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档