cooperka / react-native-snackbar

:candy: Material Design "Snackbar" component for Android and iOS.
Other
815 stars 150 forks source link

Handle invalid parent view #144

Closed sudendrakl closed 4 years ago

sudendrakl commented 4 years ago

Takes care of this crash

Fatal Exception: java.lang.IllegalArgumentException: No suitable parent found from the given view. Please provide a valid view.
       at android.support.design.widget.Snackbar.make(Snackbar.java:181)
       at com.azendoo.reactnativesnackbar.SnackbarModule.displaySnackbar(SnackbarModule.java:93)
       at com.azendoo.reactnativesnackbar.SnackbarModule.show(SnackbarModule.java:69)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
       at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
       at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
       at android.os.Looper.loop(Looper.java:193)
       at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
       at java.lang.Thread.run(Thread.java:764)

Resolves #97

cooperka commented 4 years ago

Thanks for the submission @sudendrakl. I'd prefer a more targeted solution so that other unrelated errors aren't swallowed up -- do you know which line of code was causing the IllegalArgumentException for you? The stack trace shows displaySnackbar(SnackbarModule.java:93) but I'm not sure which version you're on.

sudendrakl commented 4 years ago

@cooperka missed your reply Anyway this line ArrayList<View> modals = recursiveLoopChildren(view, new ArrayList<View>());

modals can be in busy state doing some drawing or some stuff and not be available for snackbar to use, so this IllegalArgument happens

cooperka commented 4 years ago

I've made the solution here more targetted; it would still be nice to track down the root cause but at least this situation won't crash anymore.