From 2db07728a45ca80e3c5cb48d23d39fa2e3105fe9 Mon Sep 17 00:00:00 2001 From: Developer Date: Sun, 7 Jun 2026 07:09:22 +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 --- .../providers/account_insights_provider.dart | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/features/mine/user_center/providers/account_insights_provider.dart b/lib/features/mine/user_center/providers/account_insights_provider.dart index 35f666d6..904c3d75 100644 --- a/lib/features/mine/user_center/providers/account_insights_provider.dart +++ b/lib/features/mine/user_center/providers/account_insights_provider.dart @@ -3,7 +3,7 @@ /// 创建时间: 2026-05-21 /// 更新时间: 2026-06-07 /// 作用: 管理账户洞察通知的状态(加载/已读/忽略/删除/刷新) -/// 上次更新: refresh()增加authProvider初始化状态检查,防止未初始化崩溃 +/// 上次更新: 修复build()中_loadFromCache访问state导致循环依赖,改为同步加载缓存作为初始状态 /// ============================================================ import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -48,15 +48,12 @@ class AccountInsightsState { class AccountInsightsNotifier extends Notifier { @override AccountInsightsState build() { - _loadFromCache(); - return const AccountInsightsState(); - } - - Future _loadFromCache() async { + // 同步加载缓存,直接作为初始状态返回,避免在 build 中访问 state 导致循环依赖 final cached = AccountInsightsService.loadInsights(); if (cached.isNotEmpty) { - state = state.copyWith(insights: _mergeWithExpired(cached)); + return AccountInsightsState(insights: _mergeWithExpired(cached)); } + return const AccountInsightsState(); } Future refresh() async {