Remove useless Mounting diagnostic error

Summary:
While in theory we should never delete views before removing them from the hierarchy, there are some exceptions:

(1) Some mysterious cases that don't seem like bugs, but where the child still seems to keep a reference to the parent:
(2) When deleting views as part of stopSurface.

On #1: in the past we had issues when we assumed that ViewManager.getChildCount() would return an accurate count. Sometimes it's just... wrong. Here, I've found at least one case where a View still has a parent after it's removed from the View hierarchy. I assume this is undocumented Android behavior or an Android bug, but either way, there's nothing I can do about it.

On #2: there are valid cases where we want to delete a View without explicitly removing it from the View hierarchy (it will eventually be removed from the hierarchy when the Root view is unmounted, but it may still be "in" a View hierarchy when it's deleted).

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22321374

fbshipit-source-id: 9667bbe778c418f0216550638dc26ca48a58e5fa
This commit is contained in:
Joshua Gross
2020-06-30 22:03:38 -07:00
committed by Facebook GitHub Bot
parent 3c3f8ca270
commit 0aa8ed6361
@@ -455,15 +455,6 @@ public class MountingManager {
View view = viewState.mView;
if (view != null) {
ViewParent parentView = view.getParent();
if (parentView != null) {
ReactSoftException.logSoftException(
TAG,
new IllegalStateException(
"Warning: Deleting view that is still attached to parent: [" + reactTag + "]"));
}
dropView(view);
} else {
mTagToViewState.remove(reactTag);