私はonClick
イベントのコールバックを子要素に渡す非常に単純なReactコンポーネントを持っています。ただし、onClickイベントは発生しません。クラスは以下の通りですHamburgerMenu
とHamburger
は正しくインポート/レンダリングされ、これらのコンポーネントにイベントが存在しません。関数が子に渡されたときにonClickイベントが発生しないようにします
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
を設定した場合、それは仕事を得ることができますが、それは私がのこぎりを持っているすべてのものから、不要だように、それはそうです。
ガイダンスはありますか?ありがとうございました!あなたはES6クラスをエクスポートし、createClass
を使用していないので
「this.onMenuChange.bind(this)」にする必要がありますが、少なくともクリックするとコンソールエラーが発生します。クリックするとコンソールエラーが発生しないと確信していますか? – loganfsmyth
実際に 'Hamburger'コンポーネントの' onClick'にバインドされているものがありますが、実際には 'onMenuChange'はまだ呼び出されていません。実際に何かがバインドされているのでエラーは発生しませんが、バインドされているものはすべて正しくありません。 – BenM