当前位置: 首页 > 知识库问答 >
问题:

React中的条件类名?

桑思远
2023-03-14

这可能是一个微妙的问题,但我不喜欢在浏览器中检查元素时出现的方式

有时我需要使用三元运算符向react中的元素添加类,这样当条件返回false时可能会留下一些空间

例如:

<div className={`container ${some condition ? 'bg-green' : ''}`}

当条件为true时,类被添加到div中,但当条件为false时,检查时元素中会显示一个难看的空格

<div class="container  "> 

可以接受吗?? 或者是一个不好的实践??,有没有一个好的解决方法呢?

共有3个答案

甄越
2023-03-14

使用undefined代替double qoute,这样就不会发生这种情况。

盖斌
2023-03-14

你不应该太在意,没什么大不了的。。。

不管怎么说,把间距作为条件的一部分加上来求解:

<div className={`container${someCondition ? ' bg-green' : ''}`}

const classes = ['container'].concat(condition ? 'foo' : [];

return <div className={classes.join(' ')} />
於和志
2023-03-14

这应该不是什么大问题,但是您可以删除三元运算符前的空格(并将其添加到.bg-green分支中)

<div className={`container${some condition ? ' bg-green' : ''}`}

我没有尝试过,但是您可以添加一个.trim(),就像下面这样,但是我认为您不需要它。

<div className={`container${some condition ? ' bg-green' : ''}`.trim()}

演示:

console.log(`"container${true ? ' bg-green' : ''}"`)
console.log(`"container${false ? ' .bg-green' : ''}"`)
 类似资料:
  • 问题内容: 我在渲染中添加了一个条件,突然它停止显示。这是我正在使用的代码。 我只想显示sdata中的4个项目。有人请帮忙。 问题答案: 您忘记了body中的元素,以及 i > = 5*之后的所有条目所需的元素。 * 这样写: 但我建议您使用而不是仅创建5个元素。 如果要使用,则首先使用 slice 并创建5个元素的子元素,然后在其上使用。 像这样:

  • 主要内容:React 实例,元素变量,React 实例,与运算符 &&,React 实例,三目运算符,阻止组件渲染,React 实例在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。 React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI。 先来看两个组件: 我们将创建一个 Greeting 组件,它会根据用户

  • 我正在有条件地设置我的

  • 问题内容: 我想有条件地显示和隐藏此按钮组,具体取决于从父组件传入的内容,如下所示: .... .... 但是,{this.props.showBulkActions吗?’show’:’hidden’}。我在这里做错什么吗? 问题答案: 大括号位于字符串内,因此被评估为字符串。他们需要在外面,所以应该可以工作: 注意“向右拉”后的空格。您不希望偶然提供类“ pull-rightshow”而不是“

  • 我在组件的列表中显示了一个项目数组。项目的属性之一是描述字段,其范围可以从一个单词到几个句子。 当描述太长,我想截断它,并显示一个按钮,将显示点击时的完整文本。是否截断和显示按钮的条件基于返回布尔值的函数: 然后我从组件的模板端使用这个函数,如下所示(ngFor的一小部分): 这里使用的CSS很简单: 目前,该行为非常偶然,我在控制台中收到错误: expressionchangedafterith

  • 我是一个新手,我总是想到一个基于类的组件,就像我在Java中做类一样。 在Java中比较基于类的组件和类的两种思维是正确的吗?换句话说,呈现的组件是否像Java中的对象一样,它们是类的实例化? 有区别吗?

  • 我已经开发了应用程序使用离子框架来显示客户当前的市场价格。我有问题在角js条件类与ng-重复循环。当市场发生变化时,我需要显示高(绿色)和低(红色)颜色,如果没有变化,以前的颜色应该为div显示,我使用了下面的代码查看 控制器: CSS 对于每一秒的速率将得到更新,所以若速率变得很高,那个么之前的速率应该应用css类。评分高颜色如果低意味着应用css类。rate highcolor else表示它

  • 我使用React-Native与Redux,我想呈现一个按钮,如果登录用户是合格的。不知何故,按钮不显示! 用于存储数据,我使用的是react-nate-simu-store 知道为什么console.log()工作时按钮不显示吗? 我补充说