DeviceEventEmitter——react-native

引入

import { DeviceEventEmitter } from 'react-native'

添加监听


/**
   * @param {string} eventType - Name of the event to listen to
   * @param {function} listener - Function to invoke when the specified event is
   *   emitted
   * @param {*} context - Optional context object to use when invoking the
   *   listener
   */
addListener( eventType: string, listener: Function, context: ?Object)

例:

async componentDidMount() {
  //路由监听
  this.subscription = DeviceEventEmitter.addListener('userInfoChange', () =>
    this.getMyInfo(),
  );
}

once一次性监听

/**
   * @param {string} eventType - Name of the event to listen to
   * @param {function} listener - Function to invoke only once when the
   *   specified event is emitted
   * @param {*} context - Optional context object to use when invoking the
   *   listener
   */
  once(eventType: string, listener: Function, context: ?Object)

removeAllListeners - 移除所有的事件监听

// 移除指定类型的事件监听
DeviceEventEmitter.removeAllListeners(eventType: ?string)
// 移除所有的事件监听
DeviceEventEmitter.removeAllListeners()

removeListener - 移除指定事件类型的监听

/**
   *
   * @param {string} eventType - Name of the event to emit
   * @param {function} listener - Function to invoke when the specified event is
   *   emitted
   */
DeviceEventEmitter.removeListener('someEvent', function(message) {
  console.log(message);
}); // removes the listener if already registered

removeCurrentListener - 在事件回调调用期间移除监听

var subscription = DeviceEventEmitter.addListenerMap({
  someEvent: function(data, event) {
    console.log(data);
    DeviceEventEmitter.removeCurrentListener();
  }
});
DeviceEventEmitter.emit('someEvent', 'abc'); // logs 'abc'
DeviceEventEmitter.emit('someEvent', 'def'); // does not log anything

listeners - 返回指定事件类型的所有监听者

/**
   * @param {string} eventType - Name of the event to query
   * @returns {array}
   */
DeviceEventEmitter.listeners(eventType: string);

发送消息

DeviceEventEmitter.emit('userInfoChange');
DeviceEventEmitter.addListener('someEvent', function(message) {
  console.log(message);
});
// 第二个参数是传递给Listener的arguments
DeviceEventEmitter.emit('someEvent', 'abc'); // logs 'abc'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值