EventEmitter 是 RN 中事件机制的一个实现。 RN 使用它的一个实例 RCTDeviceEventEmitter 和 Native 传递事件。
要接收 Native 传来的事件,使用已经创建好的实例 RCTDeviceEventEmitter。
import RCTDeviceEventEmitter from 'RCTDeviceEventEmitter';
EventEmitter.addListener ( eventType: String, listener: function, context: ?Object )
添加一个事件监听,当发送eventType事件时,触发listener。如果传入context参数,则在回调时将context绑定到this。
返回一个subscription对象,用于清除监听。
EventEmitter.once ( eventType: String, listener: function, context: ?Object )
添加一个事件监听,回调一次后自动清除监听。如果传入context参数,则在回调时将context绑定到this。
返回一个subscription对象,用于清除监听。
EventEmitter.removeAllListeners ( eventType: String )
清除eventType事件的所有监听。
为避免影响到业务其他部分的逻辑,不推荐使用此方法。
EventEmitter.removeCurrentListener ()
当触发事件回调时,调用此方法清除当前正在回调的监听。
EventEmitter.removeSpecificListener ( subscription: EmitterSubscription )
清除指定的监听。subscription参数是addListener或once的返回值表示的监听对象。
EventEmitter.listeners ( eventType: String )
返回指定事件的所有监听。
EventEmitter.emit ( eventType: String, ... )
发送一个事件。