React.js | 如何以更好的方式处理className?

增田广木

我想使用事件和状态来处理className

class SampleComponent extends React.Component {

  constructor(props) {
    super(props);

    this.state = {
      class1: 'bar',
      class2: 'bar'
    };
  }

  handleBarClick() {
    this.setState({
      class1: 'bar active',
      class2: 'bar'
    });
  }

  handleFooClick() {
    this.setState({
      class1: 'bar',
      class2: 'bar active'
    });
  }

  render() {
    return (
      <div>
        <span className={this.class1} onClick={this.handleBarClick.bind(this)}>bar</span>
        <span className={this.class2} onClick={this.handleFooClick.bind(this)}>foo</span>
      </div>
    );
  }
}

但是这段代码有点浪费,应该简短一点。

我想写一个更好的方法,任何人都可以提一些建议吗?谢谢。

达米安法比安

您可以使用classNames(https://github.com/JedWatson/classnames)以更好的方式实现相同目的,如下所示:

首先导入className:

import className from 'classnames'

第二,从您的州获得课程:

<span className={ className('bar', {'active': this.state.active, 'otherClass': this.state.booleanValue }) } />

如果您在active和booleanValue中都设置为true,则将这样结束:

<span class='bar active otherClass'  />

或类似的如果是假的

<span class='bar'  />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以正确的方式在angular.js中实现scrollspy?

来自分类Dev

如何以编程方式选择Fabric.js对象

来自分类Dev

如何以编程方式选择Fabric.js对象

来自分类Dev

如何以编程方式打开/关闭react-bootstrap模式?

来自分类Dev

React.js处理可见性=隐藏的方式是什么?

来自分类Dev

className react.js内部的调用函数

来自分类Dev

React.js-处理哑子状态的模式?

来自分类Dev

CKEditor如何以允许React识别的方式与React.js一起使用?

来自分类Dev

我该如何处理React JSX中的长className?

来自分类Dev

如何以编程方式在react-native中截图

来自分类Dev

如何在React.JS中添加ClassName并将其onScroll事件删除?

来自分类Dev

如何在React JS上以网格方式显示数据?

来自分类Dev

如何以列表或字典(JS方式)存储对象?

来自分类Dev

React JS-如何更好地将React组件添加到ReactDOM

来自分类Dev

处理Radio在React JS中的变化?

来自分类Dev

如何使用Action / Flux [JS / REACT]处理onClick

来自分类Dev

在React中使用Emotion.js后如何使用:not(.className)和伪选择器

来自分类Dev

基本js:如何以“旧”方式向对象添加属性?

来自分类Dev

如何以模态显示pdf而不是在react js中在新窗口中打开它

来自分类Dev

如何以Vue Js形式处理图像

来自分类Dev

处理React js中的验证场景

来自分类Dev

如何在Scala.js React.js应用程序中处理大型js文件?

来自分类Dev

如何在React JS或React-Redux JS中对CloudKit JS进行身份验证

来自分类Dev

如何在React JS和Sails JS中处理数百万条记录

来自分类Dev

如何以编程方式关闭notify.js通知?

来自分类Dev

如何以递归方式使用 JS 回调?

来自分类Dev

React.js:单击时切换 className

来自分类Dev

如何以编程方式调用 JS setter 函数

来自分类Dev

如何实现react js分页

Related 相关文章

  1. 1

    如何以正确的方式在angular.js中实现scrollspy?

  2. 2

    如何以编程方式选择Fabric.js对象

  3. 3

    如何以编程方式选择Fabric.js对象

  4. 4

    如何以编程方式打开/关闭react-bootstrap模式?

  5. 5

    React.js处理可见性=隐藏的方式是什么?

  6. 6

    className react.js内部的调用函数

  7. 7

    React.js-处理哑子状态的模式?

  8. 8

    CKEditor如何以允许React识别的方式与React.js一起使用?

  9. 9

    我该如何处理React JSX中的长className?

  10. 10

    如何以编程方式在react-native中截图

  11. 11

    如何在React.JS中添加ClassName并将其onScroll事件删除?

  12. 12

    如何在React JS上以网格方式显示数据?

  13. 13

    如何以列表或字典(JS方式)存储对象?

  14. 14

    React JS-如何更好地将React组件添加到ReactDOM

  15. 15

    处理Radio在React JS中的变化?

  16. 16

    如何使用Action / Flux [JS / REACT]处理onClick

  17. 17

    在React中使用Emotion.js后如何使用:not(.className)和伪选择器

  18. 18

    基本js:如何以“旧”方式向对象添加属性?

  19. 19

    如何以模态显示pdf而不是在react js中在新窗口中打开它

  20. 20

    如何以Vue Js形式处理图像

  21. 21

    处理React js中的验证场景

  22. 22

    如何在Scala.js React.js应用程序中处理大型js文件?

  23. 23

    如何在React JS或React-Redux JS中对CloudKit JS进行身份验证

  24. 24

    如何在React JS和Sails JS中处理数百万条记录

  25. 25

    如何以编程方式关闭notify.js通知?

  26. 26

    如何以递归方式使用 JS 回调?

  27. 27

    React.js:单击时切换 className

  28. 28

    如何以编程方式调用 JS setter 函数

  29. 29

    如何实现react js分页

热门标签

归档