React-Admin:如何使用 Datagrid <row> 隐藏“复选框”?

Nit*_*lra 1 material-ui react-admin

在 my 中App,我们有基于角色的permissions喜欢ADD/DELETE

  • Admin拥有add, delete,edit的所有权限records
  • customers没有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;
Run Code Online (Sandbox Code Playgroud)

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

小智 5

要隐藏复选框:

<List
    {...props}
    bulkActionButtons={false}
>
...
</List>
Run Code Online (Sandbox Code Playgroud)


小智 5

要在 RA v4 或更高版本中隐藏这些复选框:

<Datagrid
    {...props}
    bulkActionButtons={false}
>
...
</Datagrid>
Run Code Online (Sandbox Code Playgroud)

在 RA v4中,bulkActionButtons属性已从 List 组件移至 Datagrid 组件。