SmartDevicesManager.on(event: "change", handler: (event: { type: string; [key: string]: any }) => void)

版本要求:
@ray-js/panel-sdk≥1.16.0

描述

订阅多设备管理器变更事件。 SdmProvider 内部已通过 change 事件驱动多设备 Hooks 刷新;常规业务通常无需手动监听。 仅在 Provider 外部监听设备状态变化(如全局日志、非 React 组件等场景)时使用。

参数

参数类型必填说明
event"change"是事件名,固定为 change
handler(event: { type: string; [key: string]: any }) => void是事件回调函数

返回值

类型:any
当前 Manager 实例,支持链式调用

示例代码

监听不同事件类型并读取返回结构

manager.on('change', event => {
  switch (event.type) {
    case 'add':
    case 'init':
      console.log(event.key, event.instance);
      break;
    case 'initProgress':
      console.log(event.progress.total, event.progress.initialized, event.progress.keys);
      break;
    case 'dpDataChange':
    case 'deviceOnlineStatusUpdate':
    case 'deviceInfoUpdated':
      console.log(event.key, event.instance, event.data);
      break;
    case 'networkStatusChange':
    case 'bluetoothAdapterStateChange':
      console.log(event.data);
      break;
    case 'initComplete':
      console.log('all initialized');
      break;
    case 'delete':
      console.log(event.key);
      break;
  }
});