首页 > 解决方案 > React-Admin:如何使用 Datagrid 隐藏“复选框”?

问题描述

在我的内部App,我们有基于角色的permissions喜欢。ADD/DELETE

因此,我想为客户隐藏delete 复选框<Datagrid>

//RoleList.js

import React from "react";
import { List, Datagrid, TextField, SingleFieldList, ChipField, EditButton, DeleteButton, ReferenceArrayField, Loading } from "react-admin";
import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles(theme => ({
  chips: {
    backgroundColor: theme.palette.secondary.light
  }
}));

const RoleList = ({ permissions, ...props }) => {
  const classes = useStyles();

  if (!permissions) return <Loading />;
  const permissionsList = permissions.split(",");

  return (
    <List {...props} title="roles">
      <Datagrid rowClick="show">
        <TextField source="name" />
        <ReferenceArrayField reference="permissions" source="permissions">
          <SingleFieldList>
            <ChipField source="name" className={classes.chips} />
          </SingleFieldList>
        </ReferenceArrayField>
        {permissionsList.includes("edit_roles") && <EditButton />}
        {permissionsList.includes("delete_roles") && <DeleteButton />}
      </Datagrid>
    </List>
  );
};

export default RoleList;

这是我基于隐藏edit和按钮的组件,但复选框仍然有效。我错过了什么吗?deletepermissionsreact-admin

标签: material-uireact-admin

解决方案


要隐藏复选框:

<List
    {...props}
    bulkActionButtons={false}
>
...
</List>

推荐阅读