博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 通过 classnames 处理 多个class 的问题
阅读量:6891 次
发布时间:2019-06-27

本文共 1535 字,大约阅读时间需要 5 分钟。

react原生动态添加多个className会报错:

import style from './style.css'

想要得到最终渲染的效果是:

引入classnames库,安装:

npm install classnames --save

使用:

import classnames from 'classnames'

可以将后面的true省略,但这种我认为是比较直观的,可以对传入的class进行比较明显的动态判断

其他用法:

classNames('foo', 'bar'); // => 'foo bar'classNames('foo', { bar: true }); // => 'foo bar'classNames({ 'foo-bar': true }); // => 'foo-bar'classNames({ 'foo-bar': false }); // => ''classNames({ foo: true }, { bar: true }); // => 'foo bar'classNames({ foo: true, bar: true }); // => 'foo bar'// lots of arguments of various typesclassNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'// other falsy values are just ignoredclassNames(null, false, 'bar', undefined, 0, 1, { baz: null }, ''); // => 'bar 1'

也可以传入数组对象:

var arr = ['b', { c: true, d: false }];classNames('a', arr); // => 'a b c'

可以传入动态class

let buttonType = 'primary';classNames({ [`btn-${buttonType}`]: true });

在react中可以直接在classname内部传入动态class并进行条件判断,

不适用classnames时的书写方式:

var Button = React.createClass({  // ...  render () {    var btnClass = 'btn';    if (this.state.isPressed) btnClass += ' btn-pressed';    else if (this.state.isHovered) btnClass += ' btn-over';    return ;  }});

使用了之后可以简化:

var classNames = require('classnames');var Button = React.createClass({  // ...  render () {    var btnClass = classNames({      btn: true,      'btn-pressed': this.state.isPressed,      'btn-over': !this.state.isPressed && this.state.isHovered    });    return ;  }});

.

转载地址:http://ozhbl.baihongyu.com/

你可能感兴趣的文章
java List<Map> 排序问题
查看>>
[Angular2 Animation] Use Keyframes for Fine-Tuned Angular 2 Animations
查看>>
教你如何在word中像LaTex那样打出漂亮的数学公式
查看>>
java中类名,方法,变量,包名等大小写命名规范
查看>>
【转】在Ubuntu中安装HBase
查看>>
Nginx内置变量以及日志格式变量参数详解
查看>>
python基础-RE正则表达式
查看>>
系统管理员资源大全
查看>>
094实战 关于js SDK的程序,java SDK的程序
查看>>
Linux下查看Nginx安装目录、版本号信息?
查看>>
MVC ---- 标准查询运算符
查看>>
巧用“搜索”解决自学编程遇到的难题
查看>>
移动端布局解决方案+神器
查看>>
pom.xml详解
查看>>
最全的maven的pom.xml文件详解
查看>>
android图片特效处理之怀旧效果
查看>>
数据比较1.0(文本格式)
查看>>
微信门店小程序怎样创建 门店小程序创建方法简介
查看>>
深度优先搜索、广度优先搜索
查看>>
代码运行时间 检测锁及死锁详细信息,及sql语句 平台转化
查看>>