From 23b327196d5ae6244305f2f4d126f80f2fbb4b50 Mon Sep 17 00:00:00 2001 From: Developer Date: Mon, 8 Jun 2026 08:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discover/providers/chat_session_provider.dart | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/features/discover/providers/chat_session_provider.dart b/lib/features/discover/providers/chat_session_provider.dart index f1a974af..02bb5b88 100644 --- a/lib/features/discover/providers/chat_session_provider.dart +++ b/lib/features/discover/providers/chat_session_provider.dart @@ -667,7 +667,10 @@ class ChatSessionNotifier extends Notifier Future _savePinnedNotes() async { try { final db = AppDatabase.instance; - final pinnedSessions = state.sessions.where((s) => s.isPinnedNote).toList(); + // 使用 linkedNoteId != null 过滤,确保类型安全,避免空指针异常 + final pinnedSessions = state.sessions + .where((s) => s.linkedNoteId != null) + .toList(); // 先清空旧数据再批量写入 await db.clearPinnedNotes(); @@ -675,8 +678,10 @@ class ChatSessionNotifier extends Notifier if (pinnedSessions.isEmpty) return; final entries = pinnedSessions.map((s) { + // linkedNoteId 已通过 where 过滤确保非空 + final noteId = s.linkedNoteId!; return PinnedNotesCompanion.insert( - noteId: Value(s.linkedNoteId!), + noteId: Value(noteId), title: Value(s.name), preview: Value(s.lastMessage), createdAt: Value(DateTime.now()),