javascript - 使用 js 映射选中的复选框

标签 javascript reactjs

我正在实现某种调查,并根据 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/

相关文章:

javascript - 单击时滚动

javascript - 延迟 gif 动画 x 秒

css - 如何使用 flexbox 将两个按钮对齐到 'position:absolute' 的 div 的中心?

javascript - 将 Prop 添加到作为 Prop 传递的 React 组件?

reactjs - 为什么 React 会多次调用我的应用程序的某些函数?

javascript - 简化 Jquery 中不同 id 的验证

javascript - 中心文件输入 - Html/Css

javascript - 使用 React、React DOM 和 React Router 的外部时,React Router 4 出现问题

reactjs - 是否可以通过 AWS Amplify 的 withAuthenticator() 登录后触发功能?

javascript - 未启动文本和组件时的 React 代码渲染