如何只使用React选择一个单选按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何只使用React选择一个单选按钮相关的知识,希望对你有一定的参考价值。
我试着用它做一个小应用程序来学习React。我的应用程序有两个单选按钮,我想总是只检查其中一个,但似乎无法弄清楚当我选择另一个时如何取消选中另一个按钮。相反,他们都保持选中。这是一个jsfiddle:
https://jsfiddle.net/4us5us2o/
以下是代码:
var MyRadioButton = React.createClass({
handleChange: function () {
this.props.onChange(this.props.myValue)
},
render: function () {
return (
<input type="radio" onChange={this.handleChange}>{this.props.myValue}</input>
)
}
});
var MyApp = React.createClass({
getInitialState: function () {
return {
selectedValue: ''
}
},
changeValue: function (newValue) {
this.setState({selectedValue: newValue })
},
render: function () {
return (
<div>
<MyRadioButton onChange={this.changeValue} myValue="A" />
<MyRadioButton onChange={this.changeValue} myValue="B" /><br></br>
</div>
)
}
});
答案
您需要在输入元素上提供name属性,以将它们标记为同一单选按钮组的一部分。带有无线电类型的<input>元素的此标准行为。
在您的示例中,您可以使用:
<input type="radio" name="myGroupName" onChange={this.handleChange}>{this.props.myValue}</input>
另一答案
只是调整了Chad的答案,万一有人遇到这个问题。
<input type="radio" name="myGroupName" onChange={this.handleChange}/>
<span>{this.props.myValue}</span>
不要在输入元素中添加任何子元素,因为React会抛出错误。只需在其旁边使用跨度或标签即可显示可见文本。
以上是关于如何只使用React选择一个单选按钮的主要内容,如果未能解决你的问题,请参考以下文章
当数据来自数据库时,如何一次只选择一个单选按钮并在javascript中取消选择其他单选按钮?