具有Appbar的Material-UI Drawer不使用组件语法

HGB*_*HGB 2 appbar drawer material-ui

我已经从这个创建了一个新线程以避免混淆,因为有人告诉我Leftnav现在Drawer在Material-UI组件中.

我还有问题,第一个是ES7?这里显示的箭头函数的语法.我已经改为使用扁平链接的以下代码,以便尝试了解发生了什么:

import React, { Component } from 'react'
import { Drawer, AppBar, MenuItem} from 'material-ui'
import baseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'
import getMuiTheme from 'material-ui/styles/getMuiTheme'
import { Route, Router } from 'react-router'



export default class Header extends Component  {

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

  getChildContext() {
    return {muiTheme: getMuiTheme(baseTheme)};
  }


  handleToggle() {
    this.setState({open: !this.state.open});
    console.log("open")
   }
  handleClose() { this.setState({open: false}); }
        render() {


            return (
                <div>
                <Drawer
                  docked={false}
                  open={false}>
                  <MenuItem onTouchTap={this.handleClose}>Menu Item 1</MenuItem>
                  <MenuItem onTouchTap={this.handleClose}>Menu Item 2</MenuItem>
                  <MenuItem onTouchTap={this.handleClose}>Menu Item 3</MenuItem>
                </Drawer>

                <AppBar   title="App Bar Example"
            isInitiallyOpen={true} onLeftIconButtonTouchTap={this.handleToggle} onLeftIconButtonClick={this.handleToggle} />
                </div>
            );
        }
    }

    Header.childContextTypes = {
  muiTheme: React.PropTypes.object.isRequired,
};

export default Header;
Run Code Online (Sandbox Code Playgroud)

我现在没有错误,但它不起作用.我已经添加onLeftIconButtonClick={this.handleToggle}了尝试让汉堡包菜单切换抽屉,但没有任何反应.有没有关于SYNTAX,参数或任何参考资料的文档,我可以看看为了实现这个材料-ui框架?

dan*_*iel 5

还有另一个重要的细节,你必须将"this"绑定在:

onLeftIconButtonTouchTap={this.handleToggle.bind(this)}
Run Code Online (Sandbox Code Playgroud)

并在:

      <MenuItem onTouchTap={this.handleClose.bind(this)}>Menu Item 1</MenuItem>
      <MenuItem onTouchTap={this.handleClose.bind(this)}>Menu Item 2</MenuItem>
      <MenuItem onTouchTap={this.handleClose.bind(this)}>Menu Item 3</MenuItem>
Run Code Online (Sandbox Code Playgroud)