简体   繁体   English

TypeError:无法读取未定义的属性“切换”-classList.toggle 反应

[英]TypeError: Cannot read property 'toggle' of undefined - classList.toggle react

I need to toggle the css classes of the 3 elements on a single button click.我需要通过单击一次按钮来切换 3 个元素的 css 类。 Here is my code.这是我的代码。

import React from 'react';
import '../css/MenuIcon.css'

class MenuIcon extends React.Component {

  handleClick = (e) => {  
    e.classList.toggle('change')
  }
  render() { 
    return ( 
        <div className="container" onClick={this.handleClick}>
          <div className="bar1"></div>
          <div className="bar2"></div>
          <div className="bar3"></div>
        </div>

     );
  }
}
export default MenuIcon;

and below is the css code..以下是 css 代码..

.bar1, .bar2, .bar3{
 width: 35px;
 height: 5px;
 background-color: black;
 margin: 6px 0;
 transition: 0.4s;

}

.container {
  cursor: pointer;
}

.change .bar1 {
  -webkit-transform: rotate(-45deg) translate(-9px, 6px) ;
  transform: rotate(-45deg) translate(-9px, 6px) ;
}

.change .bar2 {
  opacity: 0;
}

.change .bar3 {
  -webkit-transform: rotate(45deg) translate(-8px, -8px) ;
  transform: rotate(45deg) translate(-8px, -8px) ;
}

and this the solution in vanilla javascript but it is not working in react throws an error says-这是香草 javascript 中的解决方案,但它在反应中不起作用会引发错误说-

TypeError: Cannot read property 'toggle' of undefined TypeError:无法读取未定义的属性“切换”

function myFunction(x) {
  x.classList.toggle("change");
}

kindly help with the solution!请帮助解决问题!

for handleClick function e is event, element that triggered an event is e.target , so to access classList for element you should call e.target.classList.toggle('change')对于handleClick function e是事件,触发事件的元素是e.target ,因此要访问元素的 classList ,您应该调用e.target.classList.toggle('change')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM