【发布时间】:2019-12-07 22:02:22
【问题描述】:
所以我有一个 API。我必须深入研究它,所以我首先映射所有响应数据,然后在其中做另一个映射以获取一个对象(测验答案)。所有这一切都很好。但是,当您单击其中一个单选框时,它不会从是/否切换,而是会被单击并保持单击状态。现在我知道如何正常处理这个问题,使用 onChange 并将项目的状态设置为 true 或 false,但在这种情况下,项目是通过循环映射生成的。
当它们是循环项目时,我如何更改它们的状态?
代码:
this.quizData = this.state.quiz_data.map((item, id) => {
return (
<div key={id}>
<h3 className='quiz-question'>{item.Title}</h3>
<p>{item.Question}</p>
<div className='quiz-answer-wrapper'>
<div className='quiz-answer-option'>
{this.quizAnswers = item.PreQualifyingAnswerDefinitions.map((item, id) => {
return (
<fieldset className='quiz-radio-label' key={id}>
<input type='radio' value='value' onChange={() => value('')} />
{item.Answer}
</fieldset>
)
})}
</div>
</div>
</div>
)
})
【问题讨论】:
-
我仍然需要解决以下问题:如果您有 4 个单选按钮,单击时所有 4 个都将保持为真,它们不会在真/假之间切换。
-
在我的回答中,我假设您只希望一个单选按钮保持活动状态,而其他单选按钮处于非活动状态。这是正确的吗?
-
正确。但我循环通过一个 api,假设它返回 10 组是/否答案。我需要创建相同数量的单选按钮,并将这两个绑定在一起,所以每个是/否对都有一个与之关联的单选按钮。
标签: reactjs array.prototype.map