
Security News
New CNA Scorecard Tool Ranks CVE Data Quality Across the Ecosystem
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
react-navigation-backhandler
Advanced tools
Easily handle Android back button with react-navigation
Easily handle Android back button behavior with React-Navigation.
NOTE use version 1 of this package for
react-navigation
version 4 and loweruse version 2 of this package for
react-navigation
version 5 and later
Install with npm:
$ npm install react-navigation-backhandler
Install with yarn:
$ yarn add react-navigation-backhandler
The following snippet demonstrates the usage. Note that onBackButtonPressAndroid
will only be called if SomeComponent
is placed in a screen that is focused (the one user is directly interacting with).
Behind the scenes, the onBackButtonPressAndroid
handler is registered before a screen is focused, and unregistered before going away from it, leaving you with a declarative interface to interact with. Internally, this package uses apis that are provided by react-navigation
.
You may use useAndroidBackHandler
or AndroidBackHandler
component anywhere in your app's React tree, it does not need to be placed directly in the screen component.
There are two ways of using this library:
import { useAndroidBackHandler } from "react-navigation-backhandler";
const SomeComponent = () => {
const onBackPress = useCallback(() => {
/*
* Returning `true` denotes that we have handled the event,
* and react-navigation's lister will not get called, thus not popping the screen.
*
* Returning `false` will cause the event to bubble up and react-navigation's listener will pop the screen.
* */
if (youWantToHandleTheBackButtonPress) {
// do something
return true
}
return false
}, [])
useAndroidBackHandler(onBackPress)
return <BodyOfYourScreen />
}
Note: You can also use the component "inline" without children:
<AndroidBackHandler onBackPress={this.onBackButtonPressAndroid} />
import { AndroidBackHandler } from "react-navigation-backhandler";
class SomeComponent extends React.Component {
onBackButtonPressAndroid = () => {
/*
* Returning `true` from `onBackButtonPressAndroid` denotes that we have handled the event,
* and react-navigation's lister will not get called, thus not popping the screen.
*
* Returning `false` will cause the event to bubble up and react-navigation's listener will pop the screen.
* */
if (youWantToHandleTheBackButtonPress) {
// do something
return true;
}
return false;
};
render() {
return (
<AndroidBackHandler onBackPress={this.onBackButtonPressAndroid}>
<BodyOfYourScreen />
</AndroidBackHandler>
);
}
}
The package was only tested to be used in screens in stack navigator, other use cases may not work.
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.