所以,我的代码位于 Advanced.js
。它生成复选框。
<div>
<h6>Sellers</h6>
{
data.data.map((item, i) => {
return <div className="custom-control custom-checkbox" key={i}>
<input type="checkbox" className="custom-control-input" id={item.slug} name={item.slug} onClick={this.props.filterItems()}/>
<label className="custom-control-label" htmlFor={item.slug}>{item.name}</label>
</div>
})
}
</div>
这是来自index.js
。
我打了Advanced.js
:<Advanced filterItems={() => this.getBrand}
这是 getBrand 函数:
getBrand = (e) => {
var checked = !e ? false : e.target.checked
var name = !e ? "" : e.target.name
if(checked){
this.setState({
brands: name
}, () => {
this.filterSeller()
})
}else{
this.setState({
brands: ""
}, () => {
this.home()
})
}
}
发生的情况是,当我选中一个复选框并选中另一个复选框时,它们都会被选中。像这样:
我想要发生的是,当我选中另一个复选框时,之前选中的复选框应该取消选中。我怎样才能做到这一点?谢谢!
最佳答案
您应该使用专门为此用例制作的单选按钮
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
关于javascript - ReactJS:选中另一个复选框时取消选中先前选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52942468/