react-native-shake
Version:
React Native shake event detector
98 lines (68 loc) • 1.96 kB
Markdown
# React Native Shake Event Detector
If you like this, please consider...
<a href="https://www.buymeacoffee.com/dokodemodoa"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a pizza&emoji=🍕&slug=dokodemodoa&button_colour=40DCA5&font_colour=ffffff&font_family=Cookie&outline_colour=000000&coffee_colour=FFDD00" /></a>
Thank you!
[](https://badge.fury.io/js/react-native-shake)

With this library, you can add shake event detector on your React Native app. Because `react-native-shake-event` is not in active development anymore, I decided to created this.
It should work best on _real devices_
## Installation
```sh
npm install react-native-shake
```
or
```sh
yarn add react-native-shake
```
## Linking the native modules
### Automatic:
From React Native 0.60, you don't have to manually link libraries anymore. Just
```bash
cd ios
pod update
```
and you're good to go.
### Manual (iOS):
Follow this [guide](https://reactnative.dev/docs/linking-libraries-ios)
## Usage
For 5.x.x and higher:
```tsx
import React from 'react';
export const MyComponent = () => {
React.useEffect(() => {
const subscription = RNShake.addListener(() => {
// Your code here...
});
return () => {
// Your code here...
subscription.remove();
};
}, []);
};
```
and for older versions:
```tsx
import RNShake from 'react-native-shake';
// For v3.x.x and below:
class MyComponent extends React.Component {
componentDidMount() {
RNShake.addEventListener('ShakeEvent', () => {
// Your code...
});
}
componentWillUnmount() {
RNShake.removeEventListener('ShakeEvent');
}
}
// For v4.x.x onwards:
class MyComponent extends React.Component {
componentDidMount() {
RNShake.addListener(() => {
// Your code...
});
}
componentWillUnmount() {
RNShake.removeListener();
}
}
```