From d42e2fa92ab2b9c11b90b2e515ba0e8e106ec029 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 21 Feb 2020 21:05:35 -0800 Subject: [PATCH] Extend MountingManager to not fail when trying to update event emitter of a non created view Summary: This diff extends the MountingManager to not fail when trying to update event emitter of a non created view. This is necessary as intermediate step to remove virtual nodes out of the RN Fabric Android changelog: [internal] Reviewed By: JoshuaGross Differential Revision: D20048998 fbshipit-source-id: c2a3633400ac67c2f46ec52ed3ad80289ff6aeb9 --- .../facebook/react/fabric/mounting/MountingManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java index f20d7e2f296..4bcda7a343a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java @@ -445,7 +445,13 @@ public class MountingManager { @UiThread public void updateEventEmitter(int reactTag, @NonNull EventEmitterWrapper eventEmitter) { UiThreadUtil.assertOnUiThread(); - ViewState viewState = getViewState(reactTag); + ViewState viewState = mTagToViewState.get(reactTag); + if (viewState == null) { + // TODO T62717437 - Use a flag to determine that these event emitters belong to virtual nodes + // only. + viewState = new ViewState(reactTag, null, null); + mTagToViewState.put(reactTag, viewState); + } viewState.mEventEmitter = eventEmitter; }