#5829·NativeBase

BackHandler.removeEventListener issue for React Native 0.77 version and above

Author: kkusanagiCreated Sep 30, 2025Updated Sep 30, 2025

Hi!

Firstly, thanks for your work on this project!

Today I used patch-package to patch [email protected] for the project I'm working on.

Here is the diff that solved my problem: Original Issue

original
useEffect(() => {
    let backHandler = () => {
      callback();
      return true;
    };
    
    if (enabled) {
      BackHandler.addEventListener('hardwareBackPress', backHandler);
    } else {
      BackHandler.removeEventListener('hardwareBackPress', backHandler);
    }
    return () =>
      BackHandler.removeEventListener('hardwareBackPress', backHandler);
  }, [enabled, callback]);

Solution

diff
useEffect(() => {
    let backHandler = () => {
      callback();
      return true;
    };

    if (!enabled) return;

    const backListener = BackHandler.addEventListener('hardwareBackPress', backHandler);

    return () => backListener.remove();
    
  }, [enabled, callback]);

This issue body was partially generated by patch-package.