fix: mitt v3 on() 返回 void,改用 off() 取消订阅

This commit is contained in:
2026-06-22 14:02:23 +08:00
parent f8db0ea4d6
commit fe8918c06f

View File

@@ -89,26 +89,33 @@ watch(activeGameId, () => {
/** 首次加载 */
fetchRoomList()
// ===== SSE 实时事件订阅 =====
onMounted(() => {
const offs = [
// 新房间创建 → 添加到列表头部
sseBus.on('room_created', (room: RoomItem) => {
// ===== SSE 实时事件订阅处理函数 =====
/** 新房间创建 → 添加到列表头部 */
function onRoomCreated(room: RoomItem) {
rooms.value.unshift(room)
}),
// 房间状态更新 → 局部替换
sseBus.on('room_updated', (room: RoomItem) => {
}
/** 房间状态更新 → 局部替换 */
function onRoomUpdated(room: RoomItem) {
const idx = rooms.value.findIndex((r) => r.id === room.id)
if (idx >= 0) {
rooms.value[idx] = room
}
}),
// 房间移除 → 从列表中删除
sseBus.on('room_removed', ({ roomId }: { roomId: string }) => {
}
/** 房间移除 → 从列表中删除 */
function onRoomRemoved({ roomId }: { roomId: string }) {
rooms.value = rooms.value.filter((r) => r.id !== roomId)
}
// ===== SSE 实时事件订阅 =====
onMounted(() => {
sseBus.on('room_created', onRoomCreated)
sseBus.on('room_updated', onRoomUpdated)
sseBus.on('room_removed', onRoomRemoved)
})
]
onUnmounted(() => offs.forEach((fn) => fn()))
onUnmounted(() => {
sseBus.off('room_created', onRoomCreated)
sseBus.off('room_updated', onRoomUpdated)
sseBus.off('room_removed', onRoomRemoved)
})
/** 筛选后的房间列表 */