Permalink
Browse files

Ignore event listeners on unmounted components

Summary:
When a touch responder gets unmounted, it can still get events dispatched to it.

We used to ignore those errors but in the new model we read the props instead of the event listener bank. The props still exist after unmount.

Instead, I check that the rootNodeID is still set since this gets reset during unmount.

Reviewed By: spicyj, bvaughn

Differential Revision: D4597127

fbshipit-source-id: b405e4ef1bcb14970be76d9ab7203cebf1f4d6c9
  • Loading branch information...
sebmarkbage authored and facebook-github-bot committed Feb 22, 2017
1 parent ca27416 commit fd4ad6ca82676e4f63bad26eb0869981439ba106
Showing with 4 additions and 0 deletions.
  1. +4 −0 Libraries/Renderer/src/renderers/shared/shared/event/EventPluginHub.js
@@ -142,6 +142,10 @@ var EventPluginHub = {
// Text node, let it bubble through.
return null;
}
if (!inst._rootNodeID) {
// If the instance is already unmounted, we have no listeners.
return null;
}
const props = inst._currentElement.props;
listener = props[registrationName];
if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, props)) {

0 comments on commit fd4ad6c

Please sign in to comment.