私はDialog
というコンポーネントを持っています。このコンポーネントでは、window
オブジェクトのマウスクリックでイベントリスナーをアタッチします。ユーザーが現在のコンポーネントをクリックしたかどうかを確認するにはどうすればよいですか?
componentDidMount() {
document.addEventListener('click', this.handleClick);
}
componentWillUnmount() {
document.removeEventListener('click', this.handleClick);
}
どのようにクリックは、コンポーネントや外部の内側に発射されたかどうか私は(関数内)を検出することができますか?このダイアログには、さまざまな要素と子コンポーネントが含まれています。
私は、コンポーネントの外部にクリックを検出するについて、この質問を見つけました。 http://stackoverflow.com/questions/32553158/detect-click-outside-react-component私は回避策とコンポーネント内のクリックを検出することができますね。 – Jackowski
@Jackowskiありがとう私はそれを試してみます。受け入れられた答え(著者自身)は、ドキュメントボディにクリックコールバックを添付する際に問題があると述べています。「Reactからの再レンダリングは、ドキュメントボディハンドラが呼び出される前に行われるため、ツリーの内部では検出されませんでした。どんな考え? – Matthew