From e635557e67f70ac22a80837516e2815413c3e3a6 Mon Sep 17 00:00:00 2001 From: iven Date: Thu, 4 Jun 2026 09:35:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20=E4=BF=AE=E5=A4=8D=20RemoteJournalR?= =?UTF-8?q?epository=20API=20=E5=93=8D=E5=BA=94=E8=A7=A3=E6=9E=90=20?= =?UTF-8?q?=E2=80=94=20=E5=88=86=E9=A1=B5=E4=BF=A1=E5=B0=81=E5=B5=8C?= =?UTF-8?q?=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: 后端列表接口返回 { success, data: { data: [...], total, ... }, message } 但前端直接 body['data'] as List,类型不匹配导致 TypeError 被静默吞掉。 修复: getJournals 和 getJournalCount 正确解析分页信封 body['data']['data'] 获取列表, body['data']['total'] 获取总数。 --- app/lib/data/repositories/remote_journal_repository.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/lib/data/repositories/remote_journal_repository.dart b/app/lib/data/repositories/remote_journal_repository.dart index 30ace01..ba683d7 100644 --- a/app/lib/data/repositories/remote_journal_repository.dart +++ b/app/lib/data/repositories/remote_journal_repository.dart @@ -39,7 +39,9 @@ class RemoteJournalRepository implements JournalRepository { final response = await _api.get('/diary/journals', queryParams: queryParams); final body = response.data as Map; - final items = body['data'] as List? ?? []; + // 后端信封格式: { success, data: { data: [...], total, page, ... }, message } + final envelope = body['data'] as Map? ?? {}; + final items = envelope['data'] as List? ?? []; return items .map((json) => JournalEntry.fromJson(json as Map)) .toList(); @@ -52,7 +54,9 @@ class RemoteJournalRepository implements JournalRepository { 'page_size': 1, }); final body = response.data as Map; - return (body['total'] as int?) ?? 0; + // 后端信封格式: { success, data: { data: [...], total, ... }, message } + final envelope = body['data'] as Map? ?? {}; + return (envelope['total'] as int?) ?? 0; } @override