reactjs - Material-UI:如何在包含状态钩子的 Checkbox 的 onChange 函数中检查 Checkbox 是否被选中?
问题描述
我正在尝试检查是否在 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>
)
);
解决方案
尝试从这里改变:
onChange={() =>
updateSelectedCheckboxes([
...selectedCheckboxes,
{
selectedAnswer: answerText,
price: price,
},
])
}
对此:
onChange={(event) =>
updateSelectedCheckboxes([
...selectedCheckboxes,
{
selectedAnswer: answerText,
price: price,
},
])
}
然后您可以像这样获取复选框的值:
event.target.checked
推荐阅读
- javascript - 通过 DOM 操作读取颜色属性,我想读取 body 的 backgroundColor 的值。但结果是一个空字符串
- python - RuntimeError:cuda 运行时错误(3):/opt/conda/conda-bld/pytorch-nightly_1553749772122/work/aten/src/THC/THCGeneral.cpp:51 处的初始化错误
- reactjs - React.js Virgin:为什么我的硬编码数据与用户输入的数据不同?
- python-3.x - TypeError:Asia/Kolkata 类型的对象不是 JSON 可序列化的
- c# - C# System.Net.Http.StringContent() 在运行时给出异常
- python - 有没有办法更改嵌套函数的参数名称?
- react-native - 如何使用 react-navigation v5 获取 id 的参数?
- f# - 指定泛型返回类型的 F# 接口
- flutter - 在颤振中,如何在用户第一次访问该网站时创建一个 cookie,并检查该 cookie 是否存在于所有后续访问中?
- r - R 格式表中的不均匀对齐与 kableExtra 相结合