我有一个包含导航栏链接的键对值的对象数组,我已将该数组映射到列表并使其成功,但是当我尝试将类添加到仅活动链接时,它将类添加到所有链接项。
想知道我哪里出错了吗?
import React, { Component } from "react";
import { Link } from "react-router-dom";
class SideNavbar extends Component {
constructor(props) {
super(props);
this.state = [
{ id: 1, name: "Link1", to: "/cms", className: "side_nav_item" },
{ id: 2, name: "Link2", to: "/cms", className: "side_nav_item" },
{ id: 3, name: "Link3", to: "/cms", className: "side_nav_item" },
{ id: 4, name: "Link4", to: "/cms", className: "side_nav_item" }
];
}
handleClick = () => {
const currentClass = document.getElementsByClassName("side_nav_item");
for (let i = 0; i < currentClass.length; i++) {
currentClass[i].classList.toggle("active_item");
console.log(currentClass[i]);
}
};
render() {
const navLinks = this.state.map(link => {
return (
<div key={link.id}>
<ul>
<li onClick={this.handleClick} className={link.className}>
<Link to={link.to}>{link.name}</Link>
</li>
</ul>
</div>
);
});
return <div>{navLinks}</div>;
}
}
export default SideNavbar;