mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 09:12:02 +00:00
0e8c3ff463
Summary: The Framework is inconsistent in how listeners are removed in certain classes. This issue has been discussed in https://github.com/facebook/react-native/issues/6493. For example, **DeviceEventEmitter** ```javascript /* Current */ this.keyboardHideObserver = DeviceEventEmitter.addListener('keyboardWillHide', this.keyboardWillHide); this.keyboardHideObserver.remove(); /* Expected (maybe in addition to the current API) */ DeviceEventEmitter.addListener('keyboardWillHide', this.keyboardWillHide); DeviceEventEmitter.removeListener('keyboardWillHide', this.keyboardWillHide); ``` **AppStateIOS** ```javascript AppStateIOS.addEventListener('change', this.handleAppStateChange); AppStateIOS.removeEventListener('change', this.handleAppStateChange); ``` The API should be consistent, and preferably should allow both ways of removing the listeners. Currently, developers who tried to use the second way of removing the listeners get an error for function not found. Due to the lack of documenta Closes https://github.com/facebook/react-native/pull/6884 Differential Revision: D3341235 Pulled By: nicklockwood fbshipit-source-id: 87431e8b667f46ad002d4a6e3ca07cbc1e6b4007