单击时检查类是否存在(React)

2024-03-12

我想检查单击时的特定元素是否具有指定的类。我知道您可以绑定一个通过的点击处理程序e.target给处理程序。我的想法是得到e.target.classList.indexOf(this.myClass) > -1查看它是否有该类,但出现以下错误。

e.target.classList.indexOf 不是函数

我认为这是因为classList is an 类数组对象,而不是实际的数组。有没有一种更简单的方法可以从 React 中单击的元素获取类列表,而无需执行所有“切片调用”魔法?

class MyComponent extends React.Component {
    constructor(props) {
        super(props);
        this.myClass = 'my-class';
    }

    handleClick(e) {
        // check if e.target class has this.myClass
        if (/* logic */) {
            // perform action
        }
    }

    render() {
        return <div onClick={this.handleClick.bind(this)} className={this.myClass + ' other-class'}>
            <div>My Component</div>
        </div>
    }

}

如何从 React 事件系统中单击的“目标”元素获取类数组?


Element.classList提供了一个contains()应该可以解决您的问题的函数:

e.target.classList.contains(this.myClass)

Docs https://developer.mozilla.org/en-US/docs/Web/API/Element/classList


另请注意this可能不是您在事件处理程序中所认为的那样,除非您显式绑定函数上下文,例如使用bind().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击时检查类是否存在(React) 的相关文章

随机推荐