Javascript 为什么材质UI应用程序栏onLefticonButton点击不起作用?

Javascript 为什么材质UI应用程序栏onLefticonButton点击不起作用?,javascript,reactjs,redux,material-ui,Javascript,Reactjs,Redux,Material Ui,我正在研究React Redux,材料界面。 现在,我正在尝试创建示例应用程序,但没有成功。 我不知道如何改进我的代码。 单击“材料UI应用程序栏OnlyRefticonButtonTouch”时,我想打开抽屉。 我想我无法将我的操作绑定到组件。 当以下代码运行时,不要触发onfirefticonbutton点击事件。 当我将openDrawer更改为openDrawer()时,在Chrome开发工具上发现了JS错误“openDrawer不是函数” Header.jsx作为一个组件 import

我正在研究React Redux,材料界面。
现在,我正在尝试创建示例应用程序,但没有成功。
我不知道如何改进我的代码。
单击“材料UI应用程序栏OnlyRefticonButtonTouch”时,我想打开抽屉。
我想我无法将我的操作绑定到组件。
当以下代码运行时,不要触发onfirefticonbutton点击事件。
当我将openDrawer更改为openDrawer()时,在Chrome开发工具上发现了JS错误“openDrawer不是函数”

Header.jsx作为一个组件

import React, { PropTypes } from 'react';
import AppBar from 'material-ui/AppBar';
import Drawer from 'material-ui/Drawer';

const Header = ({
  openDrawer,
  open
}) => (
  <div>
    <AppBar
      title='sample'
      onLeftIconButtonTouchTap = {() => openDrawer}
    />
    <Drawer 
      docked={false}
      open={open}
    />
  </div>
)

Header.PropTypes = {
  openDrawer: PropTypes.func.isRequired,
  open: PropTypes.bool.isRequired
}

export default Header;
App.jsx作为根组件

import React, { PropTypes } from 'react';
import AppBar from 'material-ui/AppBar';
import Drawer from 'material-ui/Drawer';

const Header = ({
  openDrawer,
  open
}) => (
  <div>
    <AppBar
      title='sample'
      onLeftIconButtonTouchTap = {() => openDrawer}
    />
    <Drawer 
      docked={false}
      open={open}
    />
  </div>
)

Header.PropTypes = {
  openDrawer: PropTypes.func.isRequired,
  open: PropTypes.bool.isRequired
}

export default Header;
import React, { Component, PropTypes } from 'react';

import Header from '../components/Header';

import injectTapEventPlugin from "react-tap-event-plugin";

import baseTheme from 'material-ui/styles/baseThemes/lightBaseTheme';
import getMuiTheme from 'material-ui/styles/getMuiTheme';

injectTapEventPlugin();

class App extends Component {
  constructor(props) {
    super(props);
  }

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

  render() {
    return (
      <div>
        <Header />
        {this.props.children}
      </div>
    );
  }
};

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

export default App;
import React,{Component,PropTypes}来自'React';
从“../components/Header”导入标题;
从“react-tap事件插件”导入injectTapEventPlugin;
从“材质ui/styles/baseThemes/LightBaseThemes”导入baseTheme;
从“材质ui/styles/GetMuiteme”导入GetMuiteme;
injectTapEventPlugin();
类应用程序扩展组件{
建造师(道具){
超级(道具);
}
getChildContext(){
返回{muiTheme:getMuiTheme(baseTheme)};
}
render(){
返回(
{this.props.children}
);
}
};
App.childContextTypes={
muiTheme:React.PropTypes.object.isRequired,
};
导出默认应用程序;

提前感谢。

您没有正确绑定函数。您需要将代码更新为

<AppBar
  title='sample'
  onLeftIconButtonTouchTap = { openDrawer.bind(this) }
/>

谢谢你的帮助。但也发生了其他错误
无法读取未定义的属性“bind”
我一直在努力改进问题。@Hei这是因为您需要定义
openDrawer
函数并将其传递给组件。再次感谢,很抱歉我的回复太晚。我可以解决问题。但我不能划分组件和容器。这是我的下一个任务。@Deividas你能帮我解决这个问题吗?