Skip to main content
Version: 3.x

Troubleshooting

Troubleshooting

Thanks for giving this library a try! We are sorry that you might have encountered issues though. Here is how you can seek help:

  1. Search over the issues on Github. There is a chance someone had this problem in the past and it has been resolved!
  2. When sure your problem hasn't been reported or was reported but the proposed solution doesn't work for you please follow our issue reporting guidelines.
  3. You can try seeking help on Software Mansion Discord.
  4. If you feel like reading the source code we highly recommend it, as this is by far the best resource and gives you the most up to date insights into how the library works and what might be causing the bug.
  5. If you managed to find the solution consider contributing a fix or update our documentation to make this information easier to find for the others in the future.

Reporting issues

This library is maintained by a very small team. Please keep this in mind when reporting issues, as we may not be able to respond as quickly as you might expect. We strive to address all problems as soon as possible, but our time is often constrained by other issues, features, or projects. To help us understand and address your issue more promptly, you can assist by:

  • Making sure the issue description is complete. Please include all the details about your environment (library version, RN version, device OS etc).
  • It is the best to provide an example app that reproduces the issue you are having. Put it up on gist, snack or create a repo on Github – it doesn't matter as long as we can easily pull it in, run and see the issue.
  • Explain how you run your repro app and what steps to take to reproduce the issue.
  • Isolate your issue from other dependencies you might be using and make the repro app as minimal as possible.
  • If you have spent some time figuring out the root cause of the problem you can leave a note about your findings so far.
  • Do not comment on closed issues. It is very unlikely that we are going to notice your comment in such a case. If the issue has been closed, but the proposed solution doesn't work for you, please open a new one providing all the information necessary and linking to the solution you have tried.

It's not a bug, it's a feature

  • Changing enabled prop during a gesture has no effect, only when a gesture starts (that is a finger touches the screen) the enabled prop is taken into consideration to decide whether to extract (or not) the gesture and provide it with stream of events to analyze.
  • Native gesture may not conform to the standard state flow due to platform specific workarounds to incorporate native views into RNGH.
  • Keep in mind that Touchables from RNGH are rendering two additional views that may need to be styled separately to achieve desired effect (style and containerStyle props).
  • In order for the gesture composition to work, all composed gestures must be attached to the same GestureHandlerRootView.

Multiple instances of Gesture Handler were detected

This error usually happens when in your project there exists more than one instance of Gesture Handler. It can occur when some of your dependencies have installed Gesture Handler inside their own node_modules instead of using it as a peer dependency. In this case two different versions of Gesture Handler JS module try to install the same Native Module.

You can resolve this problem manually by modifying your package.json file. This will depend on the package manager you are using.

You can check which libraries are using Gesture Handler, along with its version, with the command:

npm ls react-native-gesture-handler

Then you can decide which version of Gesture Handler to use by adding the overrides property.

"overrides": {
"react-native-gesture-handler": <Gesture Handler version>
}

After that you need to run your package manager again:

npm install