[ReactNative] use Map, not Object when functions are keys
This commit is contained in:
parent
1a12b95f7a
commit
0a95edf6ea
|
@ -13,9 +13,10 @@
|
||||||
|
|
||||||
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||||
var RCTLinkingManager = require('NativeModules').LinkingManager;
|
var RCTLinkingManager = require('NativeModules').LinkingManager;
|
||||||
|
var Map = require('Map');
|
||||||
var invariant = require('invariant');
|
var invariant = require('invariant');
|
||||||
|
|
||||||
var _notifHandlers = {};
|
var _notifHandlers = new Map();
|
||||||
var _initialURL = RCTLinkingManager &&
|
var _initialURL = RCTLinkingManager &&
|
||||||
RCTLinkingManager.initialURL;
|
RCTLinkingManager.initialURL;
|
||||||
|
|
||||||
|
@ -80,10 +81,6 @@ var DEVICE_NOTIF_EVENT = 'openURL';
|
||||||
* }
|
* }
|
||||||
* });
|
* });
|
||||||
* ```
|
* ```
|
||||||
*
|
|
||||||
* _The iOS simulator does not support the `mailto:` and `tel:` schemas
|
|
||||||
* because the Mail and Phone apps are not installed - you will need to test
|
|
||||||
* them on a device._
|
|
||||||
*/
|
*/
|
||||||
class LinkingIOS {
|
class LinkingIOS {
|
||||||
/**
|
/**
|
||||||
|
@ -95,10 +92,11 @@ class LinkingIOS {
|
||||||
type === 'url',
|
type === 'url',
|
||||||
'LinkingIOS only supports `url` events'
|
'LinkingIOS only supports `url` events'
|
||||||
);
|
);
|
||||||
_notifHandlers[handler] = RCTDeviceEventEmitter.addListener(
|
var listener = RCTDeviceEventEmitter.addListener(
|
||||||
DEVICE_NOTIF_EVENT,
|
DEVICE_NOTIF_EVENT,
|
||||||
handler
|
handler
|
||||||
);
|
);
|
||||||
|
_notifHandlers.set(handler, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,11 +107,12 @@ class LinkingIOS {
|
||||||
type === 'url',
|
type === 'url',
|
||||||
'LinkingIOS only supports `url` events'
|
'LinkingIOS only supports `url` events'
|
||||||
);
|
);
|
||||||
if (!_notifHandlers[handler]) {
|
var listener = _notifHandlers.get(handler);
|
||||||
|
if (!listener) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_notifHandlers[handler].remove();
|
listener.remove();
|
||||||
_notifHandlers[handler] = null;
|
_notifHandlers.delete(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue