[英]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.