为了账号安全,请及时绑定邮箱和手机立即绑定

循环打印时切换材质 ui 复选框不起作用

循环打印时切换材质 ui 复选框不起作用

12345678_0001 2024-01-18 16:08:38
我正在尝试打印每行 4 个复选框,其中这些复选框的行和值是动态出现的(行数可能会有所不同)获取matix数据后,我设置状态变量const[checked, setChecked] = useState([]) 如下.then((rec) => {    if (rec.status === 200) {      let chk = [];      rec.data.data.map((item, idx) => {        var obj = {};        obj[item.roleDescription + `_readAccess`] = item.readAccess;        chk.push(obj);        obj[item.roleDescription + `_writeAccess`] = item.writeAccess;        chk.push(obj);        obj[item.roleDescription + `_checkerAccess`] = item.checkerAccess;        chk.push(obj);        obj[item.roleDescription + `_makerAccess`] = item.makerAccess;        chk.push(obj);      });      setChecked(chk);    }  })我尝试过的是,因为我的行动态变化,所以我state使用 as 创建了变量条目rowName + one of check box label,所以当onChange在 CheckBox 上触发时,它应该更改状态并且需要切换复选框。但复选框没有被切换,在 CODESANDBOX示例代码中编辑添加的示例片段
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

=== 1 ? false : true从中删除,checked因为onChange您正在设置boolean

setChecked({
    ...checked,
    [e.target.name]: e.target.checked})

Codesandbox:https://codesandbox.io/s/wonderful-paper-lvcwe?file=/src/Demo.jsx

编辑1

useEffect(() => {
   console.log("checked called");
}, [checked]);


查看完整回答
反对 回复 2024-01-18
  • 1 回答
  • 0 关注
  • 35 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信