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

我正在尝试打印每行 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示例代码中编辑添加的示例片段


12345678_0001
浏览 104回答 1
1回答

慕村9548890

请=== 1 ? false : true从中删除,checked因为onChange您正在设置booleansetChecked({     ...checked,     [e.target.name]: e.target.checked})Codesandbox:https://codesandbox.io/s/wonderful-paper-lvcwe?file=/src/Demo.jsx编辑1useEffect(() => {    console.log("checked called"); }, [checked]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript