Javascript 当单击当前组件并在当前中进行切换以删除类名称同级组件时,删除类名称同级组件

Javascript 当单击当前组件并在当前中进行切换以删除类名称同级组件时,删除类名称同级组件,javascript,reactjs,Javascript,Reactjs,我是react的新手,尝试制作一个按钮,如果我点击当前按钮,该按钮将删除同级类,并且当前按钮也可以删除自身类(切换),我已经尝试过了,但似乎我没有找到线索。下面是我的代码 export default class Child extends Component { render(){ return( <button onClick={this.props.onClick} className={this.props.activeMod

我是react的新手,尝试制作一个按钮,如果我点击当前按钮,该按钮将删除同级类,并且当前按钮也可以删除自身类(切换),我已经尝试过了,但似乎我没有找到线索。下面是我的代码

export default class Child extends Component {
render(){
    return(
      <button
         onClick={this.props.onClick}
         className={this.props.activeMode ? 'active' : ''}>
         {this.props.text}
      </button>
     )
   }
}

export default class Parent extends Component {
   constructor(props) {
   super(props);
   this.state = {
     selectedIndex: null,
   };
 }

  handleClick (selectedIndex) {
   this.setState({
    selectedIndex,
   });
  }

  render () {
    const array = ["Button 1","Button 2"];
    return (
     <div>
       {array.map((obj, index) => {
       const active = this.state.selectedIndex === index;
       return <Child
       text={obj}
       activeMode={active}
       key={index}
       onClick={() => this.handleClick(index)} />
       })}
     </div>
     )
   }
 }
导出默认类子扩展组件{
render(){
返回(
{this.props.text}
)
}
}
导出默认类父扩展组件{
建造师(道具){
超级(道具);
此.state={
selectedIndex:null,
};
}
handleClick(已选择索引){
这是我的国家({
选择索引,
});
}
渲染(){
常量数组=[“按钮1”,“按钮2”];
返回(
{array.map((obj,index)=>{
const active=this.state.selectedIndex==index;
返回此.handleClick(索引)}/>
})}
)
}
}

我不是舒尔,我明白你的意思,对吧

你遇到过这样的事吗

类子级扩展React.Component{
render(){
返回(
{this.props.text}
)
}
}
类父类扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
selectedIndex:null,
};
}
handleClick(已选择索引){
let selected=this.state.selectedIndex===selectedIndex?空:selectedIndex;
这是我的国家({
selectedIndex:已选择,
});
}
渲染(){
常量数组=[“按钮1”,“按钮2”];
返回(
{
array.map((对象,索引)=>{
返回此.handleClick(索引)}/>
})
}
)
}
}
ReactDOM.render(
,
document.getElementById('容器')
);
.active{
颜色:绿色;
}


不清楚。单击按钮时,您希望看到什么?抱歉,如果您不清楚,假设我有2个按钮如果我单击第一个按钮,它将添加一个类,但当我单击第二个按钮时,它将从第一个按钮中删除类名,同时它将在第二个按钮中添加一个类,此外,如果我单击第二个按钮,我可以从第二个按钮中删除该类。它本身确实帮助我取消选择列表中已单击的项目。!谢谢兄弟!1+…但有一个问题,当我们点击已经选择的按钮时,我们如何知道按下哪个按钮来取消css类。也许,由于使用了
key={index}
react,您知道需要取消设置类的索引吗?如果我错了,请解释一下概念。谢谢;)嘿,伙计,你知道我的问题吗?很抱歉打扰你@学习啊嘿!是的,您可以在传递给处理程序函数的key={index}上进行中继,而不是您的兄弟。:)有道理。