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, ... )
发送一个事件。