首页 > 解决方案 > 当我进入下一个问题时,为什么最后选中的复选框保留它?反应式

问题描述

我正在研究调查提问者,我有多个问题,当我检查一个问题复选框时,它还会检查下一个问题等等,所以现在如何在我进入下一个调查问题时继续检查?

这是json问题列表。请帮助我,我最近几天一直在挣扎

这是我没走远的地方?这是检查功能

const processInput = (e) => {
    const checked = e.target.checked;
    let detachedAnswers = answers;
    if (checked) {
      let index = detachedAnswers.findIndex((i) => i.question === show.id);
      // detachedAnswers[index] = e.target.checked;
      detachedAnswers[index].body.push(e.target.value);

      console.log(detachedAnswers);
      setAnswers(detachedAnswers);
    } else {
      const filtered = detachedAnswers[number].body.filter(
        (string) => string !== e.target.value
      );
      detachedAnswers[number].body = filtered;
      setAnswers(detachedAnswers);
    }
  };

这是使用复选框的调查显示。

<div className="survey_option">
                {show?.choices?.split(",").map((c, index) => (
                  <div className="fix_lable" key={index + 1}>
                    <input
                      type="checkbox"
                      name="body"
                      id={c}
                      value={c}
                      // checked
                      // checked={c}
                      onChange={(e) => processInput(e, show.id)}
                    />
                    <label id={c} htmlFor={c}>
                      {c.split("-")[0]}
                    </label>
                  </div>
                ))}
              </div>
            </div>

标签: javascriptreactjscheckboxsurvey

解决方案


推荐阅读