首页 > 解决方案 > 如何在 MaterialTable 中使用复选框?(反应)

问题描述

我在反应中创建了一个材料表,我想使用其中的复选框。我怎样才能做到这一点?

在此处输入图像描述

标签: reactjsmaterial-uimaterial-table

解决方案


我按照官方文档制作了这个例子:

复选框字段演示

要使其工作,您需要在列定义上指定editComponentrender属性:

{
  title: "booleanValue",
  field: "booleanValue",
  editComponent: (props) => {
    return (
      <input
        type="checkbox"
        checked={props.value}
        onChange={(e) => props.onChange(e.target.checked)}
      />
    );
  },
  render: (rowdata) => (
    <input type="checkbox" checked={rowdata.booleanValue} />
  )
}

您还必须将onRowAddonRowUpdateonRowDelete函数定义为可编辑道具的一部分:

 editable={{
      onRowAdd: (newData) =>
        new Promise((resolve, reject) => {
          setTimeout(() => {
            setData([...data, newData]);

            resolve();
          }, 1000);
        }),
      onRowUpdate: (newData, oldData) =>
        new Promise((resolve, reject) => {
          setTimeout(() => {
            console.log(oldData);
            const dataUpdate = [...data];
            const index = oldData.tableData.id;
            dataUpdate[index] = newData;
            setData([...dataUpdate]);

            resolve();
          }, 1000);
        }),
      onRowDelete: (oldData) =>
        new Promise((resolve, reject) => {
          setTimeout(() => {
            const dataDelete = [...data];
            const index = oldData.tableData.id;
            dataDelete.splice(index, 1);
            setData([...dataDelete]);

            resolve();
          }, 1000);
        })
    }}

这是工作沙箱的链接!祝你好运!


推荐阅读