Es gibt removeCurrentListener
, aber keine removeListener
Methode.Wie entfernen Sie einen Listener von der EventEmitter-Instanz von React Native?
5
A
Antwort
17
ich die Antwort selbst gefunden.
addListener
gibt eine Instanz, die EmitterSubscription
EventSubscription
erstreckt, die remove
Methode hat.
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)
}
}