作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以在 React 中创建一个输入复选框组?如果我映射了 3 个复选框并且只能单击一个复选框。我是否只给每个状态一个状态,然后在选中一个状态后取消选中其他状态?
我已经尝试过 radio 输入,但我需要能够将它们全部取消选中,而在 radio 组中,一旦你选择了一个,我就无法将它们全部取消选中。
最佳答案
为单选按钮创建一个单独的组件。
演示:https://jsfiddle.net/69z2wepo/74970/
class Reservation extends React.Component {
constructor(props) {
super(props);
this.state = {
};
this.childs = [{checked:false},{checked:false},]
this.handleInputChange = this.handleInputChange.bind(this);
}
handleInputChange(val,index) {
this.childs.forEach((data)=>{
data.checked = false;
})
this.childs[index].checked=val;
this.setState({})
}
render() {
console.log(this.childs,"this.childs")
return (
<div>
{
this.childs.map((val,i)=>{
return <Child key ={i} index={i} checked={val.checked} handleChange={this.handleInputChange}/>
})
}
</div>
);
}
}
class Child extends React.Component {
constructor(props) {
super(props);
this.state = {};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event){
var value = event.target.value;
if(this.props.checked=='on'){
value = false;
}
console.log(value);
this.props.handleChange(value,this.props.index)
}
render() {
return (
<div>
<input
name="test"
type="radio"
checked={this.props.checked}
onChange={this.handleChange} />
</div>
)
}
}
ReactDOM.render(
<Reservation />,
document.getElementById('root')
);
CSS:
radios>input[type="radio"] {
-webkit-appearance: checkbox;
-moz-appearance: checkbox;
}
关于reactjs - react js输入复选框组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43060807/
我是一名优秀的程序员,十分优秀!