首页 > 解决方案 > 用 js 地图检查的复选框

问题描述

我正在实施某种调查,并根据 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,但没有运气。

标签: javascriptreactjs

解决方案


{qValues1.get(question.questionID + "") === question.questionID + ""}

您正在检查地图是否qValues包含与其值匹配的键。所以你应该这样做:

const { name, checked } = event.target
qValues1.set(name, checked ? name : undefined);

handleChange.


推荐阅读