如何解决将数据发送到端点时出错,我期望的结果没有到达,我错过了一个条件
基本上我在做什么是通过一系列问题,我必须使用RadioButton来回答,所以我有这个
<IonList>
{answerQuestion && answerQuestion.map((question:any) => {
return (
<IonRadioGroup
onIonChange={e => this.setSelected(e.detail.value,question.name)}>
<div className='radio-1' key={question.id}>
<IonLabel >{question.name}</IonLabel>
<div className="optionsQuestion">
<div className="optionQuestionYes">
<IonLabel className='radio-2'>Si</IonLabel>
<IonRadio value="Si"></IonRadio>
</div>
<div className="optionQuestionNo">
<IonLabel className='radio-2'>No</IonLabel>
<IonRadio value="No"></IonRadio>
</div>
</div>
</div>
</IonRadioGroup>
)})}
</IonList>
因此,我的问题被画上了,在这种情况下要回答的选项的值为“是/否”,这对我有什么影响?当我回答并取消并发送到看跌期权的答案时,在数据库中它回答了两个问题,但是给出了答案的最后一个值,例如,如果在一个问题中我回答了“是”,而在第二个问题中我回答“否”,则我将其发送保存,然后输入两个问题。
setSelected = (answer:string,name:string) =>{
this.setState({
question:
{ [name]: answer,[name]: answer}
})
}
我想要的是这样保存的对象:
{
"questions": {
"question 1?": "yes","question 2?": "no"
}
}
我可以独立地更改这些值,现在我要经历的是它修改了我俩,并且在放射性按钮中选择了最后一个值。
我有一个console.log记录了单击选项时的操作,并向我打印:它要求我输入一个我选择的值,然后问2
我最大的成就是发送了对象,但只回答了一个问题,但我两个都需要发送。
解决方法
我假设您的单选按钮正在通话
setSelected
依次设置状态:
this.setState({ question: { [name]: answer,[name]: answer} })
这将保存您的当前答案,并且当单击另一个按钮时,它将被覆盖。您应该将一系列任务/答案对象保存到状态。 为此,您应该为对象数组提供类级别的变量,示例可以在here
中找到在组件的构造函数中,初始化问题
constructor(props) {
super(props);
this.state = {
"questions": {
"question 1?": "yes","question 2?": "no"
}
};
}
在您的setSelected方法中,类似的东西应该起作用
setSelected = (answer:string,name:string) =>{
this.setState(state => {
state["questions"][name] = answer;
return state;
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。