2016-04-27 1 views

Antwort

17

ich die Antwort selbst gefunden.

https://github.com/facebook/react-native/blob/235b16d93287061a09c4624e612b5dc4f960ce47/Libraries/vendor/emitter/EventEmitter.js

addListener gibt eine Instanz, die EmitterSubscriptionEventSubscription erstreckt, die remove Methode hat.

https://github.com/facebook/react-native/blob/235b16d93287061a09c4624e612b5dc4f960ce47/Libraries/vendor/emitter/EventSubscription.js

const emitter = new EventEmitter(); 

const subscription = emitter.addListener('eventname',() => {}); 

subscription.remove(); // Removes the subscription 
1

Eigentlich tut es (es sei denn, ich missverstanden Ihre Frage).

Hier ist, wie ich es tun:

class Store extends EventEmitter { 
    constructor(listenerKey) { 
     super() 
     this.listenerKey = listenerKey 
    } 

    emitChange() { 
     setTimeout(() => { 
      this.emit(this.listenerKey) 
     }, 0) 
    } 

    addChangeListener(callback) { 
     this.on(this.listenerKey, callback) 
    } 

    removeChangeListener(callback) { 
     this.removeListener(this.listenerKey, callback) 
    } 
} 
Verwandte Themen