talalmajali / react-native-countdown-component

React Native CountDown
MIT License
274 stars 238 forks source link

AppState.removeEventListener is deprecated and causes crash #132

Open ArthurSouzaC opened 1 month ago

ArthurSouzaC commented 1 month ago

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch react-native-countdown-component@2.7.1 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-countdown-component/index.js b/node_modules/react-native-countdown-component/index.js
index b546b82..3127250 100644
--- a/node_modules/react-native-countdown-component/index.js
+++ b/node_modules/react-native-countdown-component/index.js
@@ -51,12 +51,12 @@ class CountDown extends React.Component {
   }

   componentDidMount() {
-    AppState.addEventListener('change', this._handleAppStateChange);
+    this.subscription = AppState.addEventListener('change', this._handleAppStateChange);
   }

   componentWillUnmount() {
     clearInterval(this.timer);
-    AppState.removeEventListener('change', this._handleAppStateChange);
+    this.subscription.remove()
   }

   componentDidUpdate(prevProps, prevState) {

This issue body was partially generated by patch-package.

GankCC commented 3 weeks ago

Thanks a lot, @ArthurSouzaC! You just saved my day.