Reactjs: 我根据状态来检查单选按钮,但当一个单选按钮被选中时,无法点击其他单选按钮。
问题的出现的原因是没有定义onChange函数,并且没有给两个input元素添加value属性。
解决方法是先定义一个onChange函数,然后给两个input元素添加value属性。通过定义的函数操作这些值,并将它们存储在状态对象中。更新状态会导致组件更新,因此您也会在单选按钮上看到更改。
以下是input单选按钮的文档链接:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
问题的原因是使用了错误的属性checked
,解决方法是将checked
替换为defaultChecked
并添加value
属性。
问题是因为checked
属性在这里被错误地使用了。在这段代码中,当defaultChecked
的值为true时,输入框会被默认选中。而checked
属性则用于表示输入框当前是否被选中,它需要通过改变输入框的状态来改变。
解决方法是将checked
属性替换为defaultChecked
属性,并为每个输入框添加value
属性。当value
属性的值与defaultChecked
属性的比较结果为true时,对应的输入框会被默认选中。
下面是修改后的代码:
<div> <label> <input type="radio" onChange={onChange} name={name} defaultChecked={value==="M"} value="M" /> 男性 </label> <label> <input type="radio" onChange={onChange} name={name} defaultChecked={value==="F"} value="F" /> 女性 </label> </div>