From 3e2680a508fbfbf9658b55888f60b263d0346e41 Mon Sep 17 00:00:00 2001 From: wenhong Date: Mon, 11 Jun 2018 10:29:52 +0800 Subject: [PATCH] fix: wrong use of addEventListener/removeEventListener --- .../src/app/components/ContextMenu/index.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/app/src/app/components/ContextMenu/index.js b/packages/app/src/app/components/ContextMenu/index.js index 46725075668..d22c77702c3 100644 --- a/packages/app/src/app/components/ContextMenu/index.js +++ b/packages/app/src/app/components/ContextMenu/index.js @@ -12,10 +12,7 @@ class ContextMenu extends React.Component { y: 0, show: false, }; - } - onContextMenu = event => { - event.preventDefault(); - this.mousedown = window.addEventListener('mousedown', mousedownEvent => { + this.mousedownCb = mousedownEvent => { const { show } = this.state; if (show && this.el) { @@ -23,15 +20,19 @@ class ContextMenu extends React.Component { this.close(); } } - }); - - this.keydown = window.addEventListener('keydown', keydownEvent => { + }; + this.keydownCb = keydownEvent => { const { show } = this.state; if (keydownEvent.keyCode === 27 && show) { // Escape this.close(); } - }); + }; + } + onContextMenu = event => { + event.preventDefault(); + window.addEventListener('mousedown', this.mousedownCb); + window.addEventListener('keydown', this.keydownCb); this.setState({ show: true, @@ -41,8 +42,8 @@ class ContextMenu extends React.Component { }; close = () => { - window.removeEventListener('keydown', this.keydown); - window.removeEventListener('mousedown', this.mousedown); + window.removeEventListener('keydown', this.keydownCb); + window.removeEventListener('mousedown', this.mousedownCb); this.setState({ show: false, });