EventEmitter

EventEmitter 是 RN 中事件机制的一个实现。 RN 使用它的一个实例 RCTDeviceEventEmitter 和 Native 传递事件。

引入

要接收 Native 传来的事件,使用已经创建好的实例 RCTDeviceEventEmitter

import RCTDeviceEventEmitter from 'RCTDeviceEventEmitter';

API

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参数是addListeneronce的返回值表示的监听对象。

EventEmitter.listeners ( eventType: String )

返回指定事件的所有监听。

EventEmitter.emit ( eventType: String, ... )

发送一个事件。