我有不同的jsx文件。我想在Header.jsx函數中訪問Menu.jsx組件函數來打開菜單。我也使用Material-UI。所以在這裏我在Menu.jsx中有一個「handleToggle」函數,我想通過Header.jsx中的一個按鈕「onLeftIconButtonTouchTap」觸發這個函數。我如何從其他任何組件訪問組件內部函數,我是否需要維護任何層次結構?如何訪問組件中的組件函數reactjs
App.jsx
export default class App extends React.Component{
render(){
return(
<main>
<Menu/>
<Header/>
<Body/>
<Footer/>
</main>
)
}
}
Header.jsx
export default class Header extends BaseMUI{
render(){
return (
<header>
<AppBar
title="title"
onLeftIconButtonTouchTap={this.handleToggle}
iconClassNameRight="muidocs-icon-navigation-expand-more"
/>
</header>
)
}
}
Menu.jsx
export default class Menu extends BaseMUI{
constructor(props) {
super(props);
this.state = {
open: false
};
}
handleToggle =() => this.setState({open: !this.state.open});
handleClose =() => this.setState({open: false});
componentDidMount(){
console.log(this.refs);
}
render(){
return (
<nav>
<RaisedButton
label="Open Drawer"
onTouchTap={this.handleToggle}/>
<Drawer
docked={false}
width={200}
open={this.state.open}
ref="drawer"
onRequestChange={(open) => this.setState({open})}>
<MenuItem onTouchTap={this.handleClose}>Menu Item</MenuItem>
<MenuItem onTouchTap={this.handleClose}>Menu Item 2</MenuItem>
</Drawer>
</nav>
)
}
}
不使用redux –