Uncaught TypeError: Cannot read property ‘open’ of undefined

投稿者: Anonymous

React.jsでmaterial-uiを使い下記コードを作成しましたが、leftButtonTouchedでタイトルのようなエラーが出てしまいます。どこが間違っているのでしょうか。

import React, { Component } from 'react';
import { LeftNav, MenuItem, AppBar } from 'material-ui';

export class Root extends Component{
  static propTypes = {
    children: React.PropTypes.any
  };

  constructor(props){
    super(props);
    console.log("init");
    this.state = {
      open: false
    };
  }

  leftButtonTouched(){
    this.setState({
      open: !this.state.open
    });
  }

  render(){
    return (
      <div>
        <AppBar
          onLeftIconButtonTouchTap={this.leftButtonTouched}/>
        <LeftNav open={this.state.open}>
          <MenuItem>Item1</MenuItem>
        </LeftNav>
        {this.props.children}
      </div>
    );
  }
}

参考ページ: http://www.material-ui.com/v0.14.4/#/components/left-nav

解決

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

にしたところ動きました。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *