2016-07-07 4 views
-1

사용자가 메뉴를 클릭했지만 솔루션이 작동하지 않으면 서랍을 활성화하려고합니다. 도와 줄수있으세요?Reactjs의 부모 기능 호출 (메뉴 항목의 서랍 활성화 - Material-UI 클릭)

부모

import React, { Component } from 'react'; 
// Import Appbar 
import AppBar from 'material-ui/AppBar'; 
import Drawer from 'material-ui/Drawer'; 
import LeftMenu from './Left_menu'; 

class Header extends Component { 
    constructor(props) { 
    super(props); 
    this.state = {open: false}; 
    } 
    handleToggle() { 
    this.setState({open: !this.state.open}); 
    } 

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

    render() { 
    return(
     <div> 
     <AppBar 
     title="Log" 
     onLeftIconButtonTouchTap={this.handleToggle.bind(this)} 
     /> 
     <Drawer 
      docked={false} 
      open={this.state.open} 
      onRequestChange={(open) => this.setState({open})} 
     > 
      <LeftMenu handleClose={this.handleClose} /> 
     </Drawer> 
     </div> 
    ); 
    } 
}; 

export default Header; 

아이

import React, { Component } from 'react'; 
import Drawer from 'material-ui/Drawer'; 
import MenuItem from 'material-ui/MenuItem'; 

class LeftMenu extends Component { 
    constructor(props) { 
    super(props); 
    } 
    render() { 
    return (
     <div> 
      <MenuItem onTouchTap={(event) => this.props.handleClose(event)}>Menu Item</MenuItem> 
      <MenuItem onTouchTap={(event) => this.props.handleClose(event)}>Menu Item 2</MenuItem> 
     </div> 
    ); 
    } 
} 

export default LeftMenu; 

나는 메시지를 수신 : 형식 오류 : this.setState 내가 유성이 + + MaterialUI

반작용 사용하고 함수

아니다

감사합니다.

답변

1

당신은 당신이 handleTogglehandleClose와 함께했던 것처럼, onRequestChange에서 그 논리를하지 setStaterender에서해야

<Drawer 
     docked={false} 
     open={this.state.open} 
     onRequestChange={(open) => this.setState({open})} // this.handleRequest?? 
    > 
0

을 해결합니다.

<MenuItem onTouchTap={this.props.handleClose}>Menu Item</MenuItem> 
<MenuItem onTouchTap={this.props.handleClose}>Menu Item 2</MenuItem> 
아이

에서 부모

<LeftMenu handleClose={this.handleClose.bind(this)} /> 

에서

어쨌든 감사합니다.