当前位置: 首页 > 面试题库 >

样式化组件中的条件渲染

洪浩
2023-03-14
问题内容

如何在样式组件中使用条件渲染以使用React中的样式组件将按钮类设置为活动状态?

在css中,我会这样做:

<button className={this.state.active && 'active'}
      onClick={ () => this.setState({active: !this.state.active}) }>Click me</button>

在样式化的组件中,如果我尝试在类名中使用“ &&”,则不喜欢它。

import React from 'react'
import styled from 'styled-components'

const Tab = styled.button`
  width: 100%;
  outline: 0;
  border: 0;
  height: 100%;
  justify-content: center;
  align-items: center;
  line-height: 0.2;
`

export default class Hello extends React.Component {
  constructor() {
    super()
    this.state = {
      active: false
    }  
    this.handleButton = this.handleButton.bind(this)
}

  handleButton() {
    this.setState({ active: true })
  }

  render() {
     return(
       <div>
         <Tab onClick={this.handleButton}></Tab>
       </div>
     )
  }}

问题答案:

你可以简单地做到这一点

<Tab active={this.state.active} onClick={this.handleButton}></Tab>

在您的样式中,如下所示:

const Tab = styled.button`
  width: 100%;
  outline: 0;
  border: 0;
  height: 100%;
  justify-content: center;
  align-items: center;
  line-height: 0.2;

  ${({ active }) => active && `
    background: blue;
  `}
`;


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

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

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

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

  • 本文向大家介绍react中怎样阻止组件渲染?相关面试题,主要包含被问及react中怎样阻止组件渲染?时的应答技巧和注意事项,需要的朋友参考一下 在极少数情况下,你可能希望能隐藏组件,即使它已经被其他组件渲染。若要完成此操作,你可以让  方法直接返回 ,而不进行任何渲染。

  • 我在中有条件渲染组件。我使用最新版本,并在我的应用程序中使用。此组件用于显示带有文本的跨距,一旦用户单击它,它将变为带有组件的输入,用户可以通过此组件更改字段 首先,呈现一个值为的跨度,该跨度来自该组件的道具,单击该跨度,状态变为true,呈现的组件,我希望在呈现后尽快关注该。为此,我呈现一个并定义其属性,该属性将输入传递给名为的函数,并在该函数中写入focus方法。但当我单击“跨度”并重新渲染组