【问题标题】:Material-UI: how to check if a Checkbox is checked within an onChange function of a Checkbox that contains a state hook?Material-UI:如何在包含状态钩子的 Checkbox 的 onChange 函数中检查 Checkbox 是否被选中?
【发布时间】:2021-04-07 11:04:18
【问题描述】:

我正在尝试检查是否在 Material-UI Checkbox 的状态挂钩方法中检查了一个复选框组件,我搜索了很多,但没有一个解决方案适合我。

最终目标是在选中复选框时将新对象添加到状态中,如果在状态中存在等效对象时未选中复选框,则从状态中删除对象。

我当前的代码正在将新项目添加到状态中,无论复选框是否选中,我正在寻找一种简单的方法来相应地更新我的状态。

我的代码:

const multiSelectQuestions = currQuestion.answerOptions.map(
  ({ answerText, price }) =>
    answerText !== "Custom" ? (
      <FormControlLabel
        className="currentCheckbox"
        value={answerText}
        control={<Checkbox />}
        label={answerText}
        price={price}
        onChange={() =>
          updateSelectedCheckboxes([
            ...selectedCheckboxes,
            {
              selectedAnswer: answerText,
              price: price,
            },
          ])
        }
      />
    ) : (
      <div className="customOption">
        <FormControlLabel
          value={answerText}
          control={<Checkbox />}
          label={answerText}
          price={price}
        />
        <TextField
          label="Please Specify"
          variant="outlined"
          id="mui-theme-provider-outlined-input"
          /* error */
        />
      </div>
    )
);

【问题讨论】:

    标签: reactjs react-hooks material-ui


    【解决方案1】:

    尝试从这里改变:

    onChange={() =>
              updateSelectedCheckboxes([
                ...selectedCheckboxes,
                {
                  selectedAnswer: answerText,
                  price: price,
                },
              ])
            }
    

    到这里:

    onChange={(event) =>
              updateSelectedCheckboxes([
                ...selectedCheckboxes,
                {
                  selectedAnswer: answerText,
                  price: price,
                },
              ])
            }
    

    那么你可以像这样获取复选框的值:

    event.target.checked
    

    【讨论】:

      猜你喜欢
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多