You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello. I'm new in React Native, so maybe it's totally my fault.
I tried to listen the location change with the DeviceEventEmitter. It works fine, but everytime i switch my location, my listener is fired 4 times. Always 4 times.
The App component is rendered only once. The useEffect is fired only once (in my logs). But when i switch location on/off, the logs show me "listener ..." 4 times.
Sorry if it's my fault or if i misunderstood something.
I tried outside the useEffect it's same, i tried with a useEffect and with the callback to unregister when component is unmounted, but it's never fired (and it's logic) inside my useEffect.
Project Files
Android
Click To Expand
MainApplication.java:
packagecom.tteesstt;
importandroid.app.Application;
importandroid.content.Context;
importcom.facebook.react.PackageList;
importcom.facebook.react.ReactApplication;
importandroid.content.IntentFilter;
importio.rumors.reactnativesettings.RNSettingsPackage;
importio.rumors.reactnativesettings.receivers.GpsLocationReceiver;
importcom.oblador.vectoricons.VectorIconsPackage;
importcom.polidea.reactnativeble.BlePackage;
importcom.facebook.react.ReactInstanceManager;
importcom.facebook.react.ReactNativeHost;
importcom.facebook.react.ReactPackage;
importcom.facebook.soloader.SoLoader;
importjava.lang.reflect.InvocationTargetException;
importjava.util.List;
publicclassMainApplicationextendsApplicationimplementsReactApplication {
privatefinalReactNativeHostmReactNativeHost =
newReactNativeHost(this) {
@OverridepublicbooleangetUseDeveloperSupport() {
returnBuildConfig.DEBUG;
}
@OverrideprotectedList<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = newPackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:// packages.add(new MyReactNativePackage());returnpackages;
}
@OverrideprotectedStringgetJSMainModuleName() {
return"index";
}
};
@OverridepublicReactNativeHostgetReactNativeHost() {
returnmReactNativeHost;
}
@OverridepublicvoidonCreate() {
super.onCreate();
registerReceiver(newGpsLocationReceiver(), newIntentFilter("android.location.PROVIDERS_CHANGED"));
SoLoader.init(this, /* native exopackage */false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/** * Loads Flipper in React Native templates. Call this in the onCreate method with something like * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); * * @param context * @param reactInstanceManager */privatestaticvoidinitializeFlipper(
Contextcontext, ReactInstanceManagerreactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/* We use reflection here to pick up the class that initializes Flipper, since Flipper library is not available in release mode */Class<?> aClass = Class.forName("com.tteesstt.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundExceptione) {
e.printStackTrace();
} catch (NoSuchMethodExceptione) {
e.printStackTrace();
} catch (IllegalAccessExceptione) {
e.printStackTrace();
} catch (InvocationTargetExceptione) {
e.printStackTrace();
}
}
}
}
Issue
Hello. I'm new in React Native, so maybe it's totally my fault.
I tried to listen the location change with the DeviceEventEmitter. It works fine, but everytime i switch my location, my listener is fired 4 times. Always 4 times.
The App component is rendered only once. The useEffect is fired only once (in my logs). But when i switch location on/off, the logs show me "listener ..." 4 times.
Sorry if it's my fault or if i misunderstood something.
I tried outside the useEffect it's same, i tried with a useEffect and with the callback to unregister when component is unmounted, but it's never fired (and it's logic) inside my useEffect.
Project Files
Android
Click To Expand
MainApplication.java
:AndroidManifest.xml
:Environment
Click To Expand
react-native info
output:The text was updated successfully, but these errors were encountered: