我正在构建一个应用程序,其中有以下场景:
首页 -> 聊天页面 -> 个人资料页面
“->”表示以推送形式进行路由,例如这样:
navigatorKey.currentState?.push(
MaterialPageRoute(
builder: (context) => ScreenPartyInfo(partyId: partyId),
),
);
在我的主页上,我正在观看一个提供商:
final partyListData = ref.watch(partyListStateProvider);
如果路由到我的个人资料页面并修改该提供商,则此时不可见的主页会更新。我怎样才能防止这种行为?
如果它打开且可见,我希望它能够在更改时刷新。路由也必须是这样的,因为我需要返回功能。
partyListStateProvider 是一个普通的 StateNotifierProvider。
Riverpod 会更新您的页面,因为它是“活动的”。当你切换到使用push()方法的页面时,如果你使用replace(),你的主页将被销毁,相应的提供者也会被处置。
如果我能理解你的意思,replace() 方法目前并不是你的项目的最佳解决方案,因此你必须看到你的页面更新,即使不可见。