mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-13 22:43:59 +08:00
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
This commit is contained in:
committed by
Facebook Github Bot
parent
ca2741609a
commit
fd4ad6ca82
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user