javascript - 添加动态类名

标签 javascript css reactjs

react.js我需要将动态类名添加到 div
使用react-addons ,我尝试了以下方式但徒劳无功:

var addons = require('react-addons');
var cx = addons.classSet;   

var Overlay = React.createClass({

    render: function() {
        var prod_id = this.props.prop_id;
        var large_prod_class = 'large_prod_modal_' + prod_id;

        var modal_classes = cx({
            'large_prod_modal': true,
            large_prod_class: true,
            'hidden': true
        });

        return (<div className={modal_classes}>lorem ipsum</div>);
    }
});

Overlay组件的使用方式如下:

<Overlay prod_id="9" />

Prop (即:prod_id)的值是随机的。我没有得到 divlarge_prod_modal_9 类。我得到的所有类都是 large_prod_modallarge_prod_classhidden

如何为 div 获取 large_prod_modal_9 类?

最佳答案

从 0.13 开始,classSet 插件已被弃用。官方推荐使用JedWatson/classnames .

var cx = require('classnames');   
var Overlay = React.createClass({

    render: function() {
        var prod_id = this.props.prop_id;
        var modal_classes  = cx('large_prod_modal_' + prod_id, {
            'large_prod_modal': true,
            'hidden': true
        });

        return (<div className={modal_classes}>lorem ipsum</div>);

    }
});

如果所有类名始终为真,您可以将它们作为字符串传递。

var prod_id = this.props.prop_id;
var modal_classes  = cx(
    'large_prod_modal_' + prod_id,
    'large_prod_modal'
    'hidden'
});

您可以根据需要混合字符串和对象。插件 classSet 无法提供这种灵 active 。

关于javascript - 添加动态类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28497338/

相关文章:

javascript - 单选按钮获取值

javascript - Electron 公证失败,原因是二进制文件使用的10.9 SDK版本早于SDK

javascript - 使用 Javascript/jQuery 在复选框选中/取消选中时同时显示/隐藏和启用/禁用

html - 将内联元素文本的首字母大写

javascript - 使用在 ES6 React Component 类之外声明的方法

javascript - 编写测试以更改子组件的 prop

javascript - Gatsby 混合应用程序 - 使用 `createPage` 中的模板构建的页面上的子路由问题

javascript - 在 iphone chrome 浏览器中不使用 BLOB 对象下载文件

javascript - Handlebars 中的子串助手

javascript - React beautiful dnd 与 Material UI 列表中的问题