Flutter 如何使用提供程序将ChangeNotifier限定到某些路由?
我有一个ChangeNotifier,我想在多个路由之间共享它,但不是所有路由: 第一页是我的第一页。我需要将ChangeNotifierProvider的数据与Page2、Page3和PageOnly共享,并在进入Page1时调用dispose处理我的ChangeNotifierProviderFlutter 如何使用提供程序将ChangeNotifier限定到某些路由?,flutter,Flutter,我有一个ChangeNotifier,我想在多个路由之间共享它,但不是所有路由: 第一页是我的第一页。我需要将ChangeNotifierProvider的数据与Page2、Page3和PageOnly共享,并在进入Page1时调用dispose处理我的ChangeNotifierProvider 如何使用?要做到这一点,最简单的解决方案是每个路由有一个提供程序,而不是: 提供程序( 生成器:()=>SomeValue(), 子项:MaterialApp(), ) 你有: final val
如何使用?要做到这一点,最简单的解决方案是每个路由有一个提供程序,而不是:
提供程序(
生成器:()=>SomeValue(),
子项:MaterialApp(),
)
你有:
final value=SomeValue();
材料聚丙烯(
路线:{
“/foo”:()=>Provider.value(value:value,child:foo()),
“/bar”:()=>Provider.value(value:value,child:bar()),
“/无法访问提供程序”:(u)=>CannotAccessProvider(),
}
)
另一方面,不可能“自动处置”您的模型
提供程序
在这种情况下无法知道处理对象是安全的。但我有一个问题,第2页、第3页和第4页的提供程序必须彼此共享当前行为是什么?如果我与ChangeNotifier共享,则需要第2页、第3页和第4页,但第1页不是,它是堆栈中的第一个。同样,这正是这个答案的作用。在这种情况下,如何使值自动释放?这就是我一直想弄明白的。我真的需要为此制定自己的解决方案吗?这不应该是一个非常常见的用例吗?