我正在实现某种调查,并根据 api 响应创建问题和选择,使用 map 处理 onChange 复选框,效果很好。但是,我无法正确选中复选框。
这里是复选框
<FormControlLabel
key={choice.choiceID}
value={choice.choiceID}
control={<Radio />}
label={choice.text}
labelPlacement="end"
name={"" + question.questionID}
onChange={handleChange}
checked={
qValues1.get(question.questionID + "") === question.questionID + ""}
/>
我正在将 questionID 转换为字符串,因为 name prop 应该是字符串。
function handleChange(event) {
const { name, value } = event.target;
qValues1.set(name, value); // adding into map, which is state
if (qValues1.get(name) === value) {
return true;
}
}
我尝试将 map 转换为数组,并尝试使用 .includes() 找到 choiceID,但没有成功。
最佳答案
{qValues1.get(question.questionID + "") === question.questionID + ""}
您正在检查映射 qValues
是否包含与其值匹配的键。所以你应该这样做:
const { name, checked } = event.target
qValues1.set(name, checked ? name : undefined);
在 handleChange
中。
关于javascript - 使用 js 映射选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290036/