Go to file
ozh ac4cb3b0f9 fix(ble): 设备列表 UI 刷新加 300ms 节流,修复搜到设备后点击卡死
搜索开启 allowDuplicatesKey=true,目标设备广播包每秒到达数次且 RSSI
逐包变化——upsertDevice 的签名判重只拦"完全相同"的包,挡不住信号
强度变化。每包都会走 setDeviceMap → onDeviceListChange → React
setState → 页面重渲染,搜到设备后以每秒数十次的频率打满渲染线程,
点击事件被排队到数百毫秒后处理,表现为"搜到设备就无法停搜索"。

- setDeviceMap 改用 emitDeviceListThrottled:数据实时合入 deviceMap,
  通知 UI 压到每 300ms 一次
- resetDeviceMap/stopSearch 绕过节流立即冲刷:清空与最终帧不能延迟
- cleanupDiscovery 补清节流定时器
2026-09-09 18:39:13 +08:00
config chore(migration): 提交迁移收尾遗留——token 化补全、popup/tabs 组件删除、BLE 与配网页调整 2026-09-09 10:33:16 +08:00
docs docs(ble): 补记 Taro 迁移后停搜索卡顿与配网按钮失效的修复记录 2026-09-09 18:27:30 +08:00
src fix(ble): 设备列表 UI 刷新加 300ms 节流,修复搜到设备后点击卡死 2026-09-09 18:39:13 +08:00
tests/unit feat(family): 表单校验抽纯函数并补单测 2026-09-09 15:26:29 +08:00
.editorconfig style(ble): 格式化蓝牙模块代码并添加注释 2026-04-23 17:24:14 +08:00
.eslintrc.cjs refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
.gitignore chore(migration): 提交迁移收尾遗留——token 化补全、popup/tabs 组件删除、BLE 与配网页调整 2026-09-09 10:33:16 +08:00
babel.config.js refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
package-lock.json refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
package.json refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
project.config.json refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
project.private.config.json refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
tsconfig.json refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00
vitest.config.ts refactor(app): 项目从 uni-app Vue3 整体迁移至 Taro4 + React18 2026-09-08 15:07:04 +08:00