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