React-Admin:如何使用Datagrid ?

问题描述 投票:0回答:1
隐藏“复选框”

在我的App中,我们根据角色具有permissionsADD/DELETE

  • [Admin拥有对adddeleteedit 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;

这是我的组件,在其中隐藏了基于editdeletepermissions按钮,但是checkbox仍然有效。我在react-admin中缺少任何内容吗?

material-ui react-admin
1个回答
0
投票

隐藏复选框:

<List
    {...props}
    bulkActionButtons={false}
>
...
</List>
© www.soinside.com 2019 - 2024. All rights reserved.