离开屏幕后重置提供商

问题描述

我有一个屏幕,在其中我使用视图模型来访问特定的会话变量(例如用户名)。可从包含各种用户名的ListView访问此屏幕。单击列表项后,会话的用户名将更新为单击的用户名。单击后,页面将导航到ExampleScreen,并在应用栏中显示用户名。

我的问题是,无论我单击哪个用户名,我的视图模型总是返回相同的数据,因为在离开屏幕后,总是重复使用同一视图模型实例。在导航到其他屏幕并返回后,如何确定视图模型已废弃?

var exampleVM = ChangeNotifierProvider<ExampleViewModel>((ref) => ExampleViewModel(ref.read));

class ExampleScreen extends HookWidget {
  @override
  Widget build(BuildContext context) {
    var vm = useProvider(exampleVM);
    
    return Scaffold(
        appBar: AppBar(title: vm.username),...
    );
  }
}
class ExampleViewModel{
  final Reader read;
  SessionRepository _session;

  int get username => _session.username;

  ExampleViewModel() {
    _session = read(sessionProvider);
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...