gpt4 book ai didi

reactjs - 使用material-ui制作侧边栏

转载 作者:行者123 更新时间:2023-12-03 13:21:56 24 4
gpt4 key购买 nike

我正在通过制作像这样的右侧导航菜单来学习material-ui:http://demo.geekslabs.com/materialize/v3.1/或者至少像这样:http://www.material-ui.com/#/components/app-bar

我正在使用抽屉来制作侧边栏,问题是当侧边栏切换时,它会隐藏右侧的内容。我希望当我的侧边栏切换时,它会发生并将内容推到右侧,并且侧边栏和内容都有自己的滚动条。这是我当前的代码:

侧边栏.js:

import React from 'react';
import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import Drawer from 'material-ui/Drawer';
import MenuItem from 'material-ui/MenuItem';
import RaisedButton from 'material-ui/RaisedButton';
import AppBar from 'material-ui/AppBar';

export default class Sidebar extends React.Component {

constructor(props) {
super(props);
this.state = {open: false};
}

handleToggle = () => this.setState({open: !this.state.open});

handleClose = () => this.setState({open: false});

render() {
return (
<MuiThemeProvider muiTheme={getMuiTheme(lightBaseTheme)}>
<div>
<RaisedButton
label="Open Drawer"
onTouchTap={this.handleToggle}
/>
<Drawer
containerStyle={{height: 'calc(100% - 64px)', top: 64}}
docked={true}
width={200}
open={this.state.open}
onRequestChange={(open) => this.setState({open})
}
>
<AppBar title="AppBar" />
<MenuItem onTouchTap={this.handleClose}>Menu Item</MenuItem>
<MenuItem onTouchTap={this.handleClose}>Menu Item 2</MenuItem>
</Drawer>
</div>
</MuiThemeProvider>
);
}
}

我的Layout.js:

import React, { PropTypes } from 'react';
import withStyles from 'isomorphic-style-loader/lib/withStyles';
import s from './Layout.css';
import Header from '../Header';
import Feedback from '../Feedback';
import Footer from '../Footer';
import Sidebar from '../Sidebar';

import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import AppBar from 'material-ui/AppBar';
import injectTapEventPlugin from 'react-tap-event-plugin';
injectTapEventPlugin();

function Layout({ children }) {
return (
<div>
<MuiThemeProvider muiTheme={getMuiTheme(lightBaseTheme)}>
<AppBar title="My web" />
</MuiThemeProvider>

<Sidebar/>
{React.Children.only(children)}
<Feedback />
<Footer />
</div>
);
}

Layout.propTypes = {
children: PropTypes.element.isRequired,
};

export default withStyles(s)(Layout);

最佳答案

这可以通过新版本的 Material-UI 来完成。

检查this demos出来。

该行为在 Material specification 中进行了描述。在“持久”标题下。

提到的Material-UI版本是v1.0.0-beta.38。到目前为止我发现它非常稳定。

关于reactjs - 使用material-ui制作侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39865799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com