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

组件的React jsx条件样式

皇甫心思
2023-03-14

我正在有条件地设置我的

render() {
  return (
    <>
      <input
        type="text"
        style={{
          width: "100%",
          paddingLeft: "8px",
          paddingTop: "6px",
          paddingBottom: "6px",

          border: this.state.error
            ? "2px solid red"
            : this.state.value
            ? "2px solid #2684ff"
            : "2px solid hsl(0, 0%, 80%)",
          outline: "0px",

          "&:hover": {
            border: "2px solid green"
          }
        }}
        placeholder={this.props.placeholder}
        onChange={this.handleInput}
        onFocus={this.checkErrors}
        value={this.state.value}
        onBlur={this.sendData}
      />

      {this.state.error ? (
        <div className="errorMsg"> {this.props.errorMsg} </div>
      ) : null}
    </>
  );
}

我的条件样式有效,并且

我尝试了另一种方法,在那里我有条件地为我的设置className

    input[type="text"]:hover {
      border: 2px solid pink;
    }

然而,我想在内联JSX中完成这项工作。为什么我的风格


共有2个答案

越学文
2023-03-14

伪css选择器在内联中不起作用style.btw我不推荐上面评论中的任何js解决方案。你需要一个更健壮的css解决方案来处理所有类型的伪选择器。您的选择是:

>

  • 在js解决方案中使用css,如styled-components.https://styled-components.com/

    使用常规css或scss和条件开关类名称。您可以利用类名库更容易experience.https://www.npmjs.com/package/classnames

    在输入上方渲染样式标签,并将输入样式放在那里。这是一种非常糟糕的做法,而且很难看。

  • 令狐烨烨
    2023-03-14

    "

    input {
      &:hover {
        background: red;
      }
    }
    

    将编译为:

    input:hover {
      background: red;
    }
    

    但您必须使用sass或样式化组件才能使用同步税。

     类似资料:
    • 问题内容: 如何在样式组件中使用条件渲染以使用React中的样式组件将按钮类设置为活动状态? 在css中,我会这样做: 在样式化的组件中,如果我尝试在类名中使用“ &&”,则不喜欢它。 问题答案: 你可以简单地做到这一点 在您的样式中,如下所示:

    • 如何在样式组件中使用条件渲染来设置我的按钮类在React中使用样式组件? 在css中,我会这样做: 如果我尝试使用'

    • 本文向大家介绍怎样有条件地渲染组件?相关面试题,主要包含被问及怎样有条件地渲染组件?时的应答技巧和注意事项,需要的朋友参考一下 or

    • 我目前正在使用JavaFX制作一个幻灯片益智游戏: 要玩这个游戏,你点击空格旁边的按钮来切换这两个按钮,游戏的重点是在尽可能少的移动量内获得从1到15的数字顺序的所有按钮。我完成了游戏的大部分编码(仍然有一些我想添加的特性),但现在我想使用CSS对按钮进行样式化。 但问题是:每个按钮都有一个布尔值,用于确定是否可以移动它(如果它在emptyButton旁边,则为true,否则为false)。如何设

    • 我正在开发一个带有样式组件的反应应用程序,我有一个组件“导航”。在这个组件中有更多的组件,如,等。Header例如是这样声明的: 问题是,我在不同的文件中有这个导航组件,对于所有文件,样式都很好,但现在我只想在其中一个文件中更改标题组件的背景色,它位于(?)导航组件。我该怎么做?我知道可以用const NewNav=styled(导航)之类的东西从导航组件更改样式,`但是标题呢? 先谢谢你。

    • 我已经看到了一些解决这个问题的繁重解决方案,在React中使用ref或事件处理程序。我想知道样式化组件中是否有解决方案。 下面的代码显然不正确。当输入子组件具有焦点时,我正在尝试找出设置父组件样式的最简单方法。这是否可以使用样式化组件? 实现这一点的最佳方法是什么,特别是考虑到样式化组件,即使这意味着依赖上面提到的React方法之一?