From 0f3ea9fb8c8172cf271b4416f40e50545c258bdf Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Wed, 19 Aug 2015 13:44:22 -0700 Subject: [PATCH] [ReactNative] Fix switching to null event listener --- Libraries/ReactNative/ReactNativeBaseComponent.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Libraries/ReactNative/ReactNativeBaseComponent.js b/Libraries/ReactNative/ReactNativeBaseComponent.js index 84baf6753..844923a2b 100644 --- a/Libraries/ReactNative/ReactNativeBaseComponent.js +++ b/Libraries/ReactNative/ReactNativeBaseComponent.js @@ -27,6 +27,7 @@ var warning = require('warning'); var registrationNames = ReactNativeEventEmitter.registrationNames; var putListener = ReactNativeEventEmitter.putListener; +var deleteListener = ReactNativeEventEmitter.deleteListener; var deleteAllListeners = ReactNativeEventEmitter.deleteAllListeners; type ReactNativeBaseComponentViewConfig = { @@ -230,7 +231,11 @@ ReactNativeBaseComponent.Mixin = { _reconcileListenersUponUpdate: function(prevProps, nextProps) { for (var key in nextProps) { if (registrationNames[key] && (nextProps[key] !== prevProps[key])) { - putListener(this._rootNodeID, key, nextProps[key]); + if (nextProps[key]) { + putListener(this._rootNodeID, key, nextProps[key]); + } else { + deleteListener(this._rootNodeID, key); + } } } },