'How to remove listner in the right way in react native navigation with class components
when I use removeListner function to remove the listner on navigation, I got a warning about that and that the remove not works correctly.
  componentDidMount() {
    this.props.navigation.addListener('focus', this.props.didFocus);
    this.props.navigation.addListener('blur', this.props.didBlur);
  }
  componentWillUnmount() {
    this.props.navigation.removeListener('focus',this.props.didFocus);
    this.props.navigation.removeListener('blur',this.props.didBlur);
    }
  }
in old versions of Navigation it was used like the following example :
 subscribe : NavigationEventSubscription;
 componentDidMount() {
   this.subscribe = this.props.navigation.addListener('didFocus', this.props.didFocus);
  }
  componentWillUnmount() {
    if(this.subscribe){
     this.subscribe.remove();
}
    }
  }
							
						Solution 1:[1]
removeListener works fine.
I got a warning about that
You need to say what warning you got if you're asking for help.
Another way is to use the function returned by addListener.
  unsubscribe?: () => void;
  componentDidMount() {
   this.unsubscribe = this.props.navigation.addListener('focus', this.props.didFocus);
  }
  componentWillUnmount() {
    this.unsubscribe?.()
  }
    					Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | satya164 | 
