【发布时间】:2017-08-22 20:58:42
【问题描述】:
我是新来的反应。试图弄清楚如何绑定点击事件并让它在两个地方切换一个类。我如何做到这一点?
这是我到目前为止所做的。
导航:
import React from 'react';
import { css } from 'glamor';
import { container } from '../contents/grid'
export default class Navigation extends React.Component {
constructor(props) {
super(props);
this.state = { isToggled: true };
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggled: !prevState.isToggled
}));
}
showHeader() {
this.refs.navigation.show();
}
render() {
return (
<nav className={nav} {...container}>
<ul {...hamburger} className={this.state.isToggled ? "" : "active"} onClick={this.handleClick}>
<li>
</li>
</ul>
</nav>
)
}
}
还有侧面菜单/标题:
import React from 'react';
import { Link } from 'react-router-dom';
import { css } from 'glamor';
import { header, nav, navUL } from '../contents/navigation';
export default class Header extends React.Component {
constructor(props) {
super(props);
}
show() {
this.setState({
isToggled: true
});
}
render() {
return (
<header {...header}>
<nav {...nav}>
<ul {...navUL} className={styleUl}>
<li>
<Link to='/'>Robin Savemark</Link>
</li>
<li>
<Link to='/experience'>Erfarenhet</Link>
</li>
<li>
<Link to='/education'>Utbildning</Link>
</li>
<li>
<Link to='/project'>Projekt</Link>
</li>
<li>
<Link to='/knowledge'>Kunskaper</Link>
</li>
<li>
<Link to='/contact'>Kontakt</Link>
</li>
</ul>
</nav>
</header>
)
}
}
以及我只渲染每个组件的应用程序:
import React from 'react';
import Navigation from './Navigation';
import Header from './Header';
import Main from './Main';
export default class App extends React.Component {
render() {
return (
<div>
<Navigation />
<Header ref="Navigation" />
<Main />
</div>
)
}
}
如何告诉我的“handleClick”方法“切换”汉堡菜单和标题/侧面菜单?因为 handleClick 在另一个范围内(导航),我不希望它在 Header 类中做同样的事情。
【问题讨论】: