我正在使用Trivia API在ReactJS中制作一个测验项目。如果我单击4个选项中的一个选项,那么它应该被选中,同时取消选中所有其他选项。此外,如果我再次单击它,那么它应该被取消选中。我是一个完全的React初学者。请帮助我!!!
function Questionnaire(props){
return(
<div className="question">
<div className="ques">{props.ques}</div>
<ul className="options">
<li>{props.incorrAns[0]}</li>
<li>{props.corrAns}</li>
<li>{props.incorrAns[1]}</li>
<li>{props.incorrAns[2]}</li>
</ul>
</div>
)
}
2条答案
按热度按时间flseospp1#
你可以用React的状态
z4iuyo4d2#
首先,对于这类任务,我可能会使用
<input type="radio">
,你可以阅读关于here的内容。但这里有一个可能的解决方案,您可以使用自己的代码
CodeSandbox
解释一下我们在这里做什么,首先我们解构
props
,这样它会更好地使用,我们设置一个名为selectedAnswer
的状态,它将保存当前选择的答案。我冒昧地使用了
map()
函数,通过将corrAns
和incorrAns
连接到一个数组中来减少<li>
元素的写入次数。然后,我们设置了onClick
函数,这样当您单击一个答案时,它会触发handleClick
函数,检查您是否选择了不同的答案。如果是不同的答案,我们将突出显示新选择的答案。如果选择的答案与之前相同,我们将按要求删除突出显示的答案。