如何将Material-UI工具栏拆分为左右部分

时间:2019-04-08 03:21:35

标签: javascript html reactjs material-ui

如何将Material-UI工具栏拆分为左右部分。例如,这是我的工具栏

let EnhancedTableToolbar = props => {
  const { numSelected, classes ,deletefunc} = props;

  return (
    <Toolbar
      className={classNames(classes.root, {
        [classes.highlight]: numSelected > 0,
      })}
    >
      <div className={classes.title}>
        {numSelected > 0 ? (
          <Typography color="inherit" variant="subtitle1">
            {numSelected} selected
          </Typography>
        ) : (
          <Typography variant="h6" id="tableTitle">
            User List
          </Typography>
        )}
      </div>

      <div className={classes.actions}>
        {numSelected > 0 ? (
        <div >

        <div style={{ display: 'inline-block' }}>
          <Tooltip title="Delete">
            <IconButton aria-label="Delete">
              <DeleteIcon onClick={() => { if (window.confirm('Are you sure you wish to delete '+numSelected +' item?')) {deletefunc()} } }>
              </DeleteIcon>
            </IconButton>
          </Tooltip>
        </div>
         <div style={{ display: 'inline-block' }}>
          <Tooltip title="Edit">
            <IconButton aria-label="Edit">
              <EditIcon>
              </EditIcon>
            </IconButton>
          </Tooltip>
            </div>

         </div>


        ) : (
          <Tooltip title="Filter list">
            <IconButton aria-label="Filter list">
              <FilterListIcon />
            </IconButton>
          </Tooltip>
        )}


      </div>
    </Toolbar>
  );
};

我想在工具栏的左侧显示numSelected,并在工具栏的右侧显示删除按钮和编辑按钮。但是,我的示例输出在numSelected旁边显示了delete按钮和edit按钮。有人对此问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

解决方案是添加

flex: '0 0 auto'

在我的动作课和一个

<div className={classes.spacer}>

标题类和动作类之间。

这就是我设置间隔,标题和动作类的方式。

const toolbarStyles = theme => ({
  root: {
    paddingRight: theme.spacing.unit,
  },
  highlight:
    theme.palette.type === 'light'
      ? {
          color: theme.palette.secondary.main,
          backgroundColor: lighten(theme.palette.secondary.light, 0.85),
        }
      : {
          color: theme.palette.text.primary,
          backgroundColor: theme.palette.secondary.dark,
        },
  spacer: {
    flex: '1 1 100%',
  },
  actions: {
    color: theme.palette.text.secondary,
    flex: '0 0 auto',
  },
  title: {
    flex: '0 0 auto',
  },
});