From 96076002b141437aa8ec1d96988da576f86f6d3a Mon Sep 17 00:00:00 2001 From: HuiJi Yao Date: Sun, 12 Jun 2022 15:16:47 +0800 Subject: [PATCH] refactor: use remove() to unsubscribe dimension listeners (#157) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix removeEventListener warning in rn0.65 removeEventListener is deprecated in React-native >= 0.65 and will throw warnings * typo & error fixed I have not read all the code , but I think maybe in some places removeListeners is called before attachListeners, an error will occur: backPressListner is undefined * fix typo Co-authored-by: Óscar Carretero Co-authored-by: Vojtech Novak Co-authored-by: Óscar Carretero --- src/overflowMenu/vendor/Menu.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/overflowMenu/vendor/Menu.js b/src/overflowMenu/vendor/Menu.js index 75fa76d..28ab707 100644 --- a/src/overflowMenu/vendor/Menu.js +++ b/src/overflowMenu/vendor/Menu.js @@ -240,15 +240,15 @@ export class Menu extends React.Component { }; attachListeners = () => { - BackHandler.addEventListener('hardwareBackPress', this.handleDismiss); - Dimensions.addEventListener('change', this.handleDismiss); + this.backPressListener = BackHandler.addEventListener('hardwareBackPress', this.handleDismiss); + this.dimensionChangeListener = Dimensions.addEventListener('change', this.handleDismiss); this.isBrowser() && document.addEventListener('keyup', this.handleKeypress); }; removeListeners = () => { - BackHandler.removeEventListener('hardwareBackPress', this.handleDismiss); - Dimensions.removeEventListener('change', this.handleDismiss); + this?.backPressListener?.remove(); + this?.dimensionChangeListener?.remove(); this.isBrowser() && document.removeEventListener('keyup', this.handleKeypress); };