Skip to content

Commit

Permalink
Remove useless Mounting diagnostic error
Browse files Browse the repository at this point in the history
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
  • Loading branch information
JoshuaGross authored and facebook-github-bot committed Jul 1, 2020
1 parent 3c3f8ca commit 0aa8ed6
Showing 1 changed file with 0 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -455,15 +455,6 @@ public void deleteView(int reactTag) {
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);
Expand Down

0 comments on commit 0aa8ed6

Please sign in to comment.