我有一个ChangeNotifier,我想在多条路线之间共享它,但不是所有条路线:
Page1是我的第一页。我只需要与Page2,Page3和Page共享ChangeNotifierProvider的数据,并在输入Page1呼叫后就将ChangeNotifierProvider丢弃。
如何使用provider执行此操作?
答案 0 :(得分:1)
为此,最简单的解决方案是在每条路由中设置一个提供商,而不是:
Provider(
builder: (_) => SomeValue(),
child: MaterialApp(),
)
您有:
final value = SomeValue();
MaterialApp(
routes: {
'/foo': (_) => Provider.value(value: value, child: Foo()),
'/bar': (_) => Provider.value(value: value, child: Bar()),
'/cannot-access-provider': (_) => CannotAccessProvider(),
}
)
另一方面,无法“自动处置”模型。
provider
在这种情况下无法知道可以安全处置该对象。