我正在使用React应用程序中的无线电提交方法。
handleSelect = e => {
const key = e.target.name;
const value = e.target.id;
this.setState({ [key]: value});
console.log(this.state);
}
这是有问题的无线电领域:
<div className="answer">
<Input type="radio"
id="day2AnswerA"
name="day2CorrectAnswer"
value={this.state.day2CorrectAnswer}
onChange={this.handleSelect}
/>
这是我的状态:
state = {
rocketName: '',
className:'',
day2QuestionName: '',
day2ReviewText: '',
day2QuestionText: '',
day2AnswerA: '',
day2AnswerB: '',
day2AnswerC: '',
day2AnswerD: '',
day2CorrectAnswer: '',
}
这将是具有多个无线电字段的较大形式的一部分,所有无线电字段都具有相同的name
属性,因此一次只能选择一个。
我试图在用户选择一个无线电字段后立即进行状态更新,例如,如果用户单击上面显示的无线电字段,那么我希望状态的day2CorrectAnswer
属性立即更新成为day2AnswerA
。
为什么这不起作用?
答案 0 :(得分:1)
我认为您应该更新在Input上检查的道具。单选输入使用选中的属性显示或不显示选中的状态。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
答案 1 :(得分:1)
看看您的输入,我会看到一个循环状态问题-每个无线电输入的值不能简单地是必须具有实际值的状态值-可能是像value =“ The Big Blue Bear”这样的字符串值,以及您想确保输入受到控制是要检查状态是否为day2CorrectAnswer的状态值等于此输入的值。