[React] Using the classnames library for conditional CSS

Classnames is a simple yet versatile javascript utility that joins CSS class names based on a set of conditions. We are going to build a simple toggle switch that relies on state to determine what CSS classes will be applied.

 

复制代码
//className = require('classnames')
const className = window.classNames;

class ClassnamesExample extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      isOn: false
    };
  }

  toggleState = () => { this.setState({isOn: !this.state.isOn}); }

  render() {

    const circleClasses = className({
      circle: true,
      off: !this.state.isOn,
      on: this.state.isOn
    });

    const textClasses = className({
      textOff: !this.state.isOn
    })

    console.log(circleClasses);
  //    <div className="circle off"></div>
  //    <span className="textOff">{this.state.isOn ? 'ON' : 'OFF' }</span>
    return (
      <div onClick={this.toggleState}>

        <div className={circleClasses}></div>
        <span className={textClasses}>{this.state.isOn ? 'ON' : 'OFF' }</span>
      </div>
    );
  }
}

window.onload = () => { ReactDOM.render(<ClassnamesExample/>, document.getElementById('app')); }
复制代码

 

 to JsBin

posted @   Zhentiw  阅读(271)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示