我在Ffltter中使用Riverpod,最近我一直在从StateNotifierProvider迁移到NotifierProvider.作为迁移的一部分,我对Riverpod代码进行了修改,该代码可以监控应用程序的生命周期,并在应用程序的外观模式发生变化时自动更改Ffltter应用程序的主题.我有一个关于这个修改的问题.
修改前:
final sampleProvider =
StateNotifierProvider<SampleNotifier, SampleState>((ref) {
final observer = SampleNotifier();
final binding = WidgetsBinding.instance..addObserver(observer);
ref.onDispose(() {
binding.removeObserver(observer);
});
return observer;
});
修改后:
final sampleProvider =
NotifierProvider.autoDispose<SampleNotifier, SampleState>(() {
final observer = SampleNotifier();
WidgetsBinding.instance.addObserver(observer);
//final binding = WidgetsBinding.instance..addObserver(observer);
// ref.onDispose(() {
// binding.removeObserver(observer);
// });
return observer;
});
在将StateNotifierProvider修改为NotifierProvider的过程中,我删除了以下部分:
ref.onDispose(() {
binding.removeObserver(observer);
});
可以go 掉这个部件吗?如果观察者无限期地被绑定,会不会对应用程序产生负面影响或造成效率低下?