Material ui 中的夹子抽屉

Meh*_*kri 1 material-ui

根据docs, material-ui 支持持久抽屉。
但我预期的行为是像照片一样剪下的持久抽屉。

在此处输入图片说明

我的侧边栏组件:

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { withStyles } from 'material-ui/styles';
import Drawer from 'material-ui/Drawer';
import List, { ListItem, ListItemIcon, ListItemText } from 'material-ui/List';
import Face from 'material-ui-icons/Face';
import Person from 'material-ui-icons/Person';
import Assignment from 'material-ui-icons/Assignment';
import NavLink from 'react-router-dom/NavLink';
import { FormattedMessage } from 'react-intl';
import styles from '../../../../style/components/global/Sidebar.scss';

const cx = require('classnames/bind').bind(styles);

const rootStyles = theme => ({
  list: {
    width: 250,
    flex: 'initial',
  },
  drawer: {
    top: 30,
  },
});
class UndockedDrawer extends Component {
  render() {
    const { classes } = this.props;
    const sidebarListItems = (
      <div>
        <NavLink
          to="/users"
          className={cx('noStyle')}
        >
          <ListItem button>
            <ListItemIcon>
              <Person />
            </ListItemIcon>
            <ListItemText primary={<FormattedMessage id="user" />} />
          </ListItem>
        </NavLink>
      </div>
    );

    const sidebarList = (
      <div>
        <List className={classes.list}>
          {sidebarListItems}
        </List>
      </div>
    );

    return (
      <div>
        <Drawer
          open={this.props.open}
          onRequestClose={this.props.onRequestClose}
          onClick={this.props.onRequestClose()}
          type="permanent">
          {sidebarList}
        </Drawer>
      </div>
    );
  }
}

export default withStyles(rootStyles)(UndockedDrawer);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试使top属性与 AppBar 的高度一样多,但这种行为并不是我所需要的。

有没有办法实现这一目标?

szy*_*onm 6

您需要为AppBar. 以您提供的文档为例:

代替:

const styles = theme => ({
  ...
  appBar: {
    position: 'absolute',
    width: `calc(100% - ${drawerWidth}px)`,
    marginLeft: drawerWidth,
  },
  ...
});
Run Code Online (Sandbox Code Playgroud)

用:

const styles = theme => ({
  ...
  appBar: {
    position: 'absolute',
    width: '100%',
    zIndex: '1400',
  },
  ...
});
Run Code Online (Sandbox Code Playgroud)

为什么zIndex是1400?它只是一个高于zIndex抽屉的任意数字,即1300.

在此处输入图片说明