【发布时间】:2015-09-18 01:19:37
【问题描述】:
我有一个非常简单的 React 组件,我将 onClick 事件的回调传递给子元素;但是,onClick 事件似乎永远不会触发。该类在下方,HamburgerMenu 和 Hamburger 已正确导入/呈现,这些组件上不存在任何事件。
export default class AppHandler extends React.Component {
componentWillMount() {
this.state = {
menuOpen: false
};
}
render() {
return (
<div>
<HamburgerMenu menuOpen={this.state.menuOpen} />
<div className="content">
<nav>
<Hamburger onClick={this.onMenuChange.bind(this)} />
</nav>
</div>
</div>
);
}
onMenuChange() {
console.log('onMenuChanged');
this.setState({ menuOpen: !this.menuOpen });
}
};
如果在Hamburger 组件中我在根元素上设置另一个onClick 事件,然后将this.props.onClick 设置为该事件处理程序,我可以让它工作,但从我所看到的一切看来,这似乎是不必要的。
有什么指导吗?谢谢!
【问题讨论】:
-
应该是
this.onMenuChange.bind(this),但是当你点击时你至少会得到一个控制台错误。您确定单击时绝对没有控制台错误? -
我确实看到
Hamburger组件的onClick确实绑定了一些东西,但它实际上仍然没有调用onMenuChange。所以它不会抛出错误,因为实际上绑定了一些东西,但是绑定的东西是不正确的。
标签: javascript reactjs ecmascript-6