我一直在尝试理解Riverpod是如何工作的,我想知道当在Flutter中更改路线时,它是如何知道何时使用.autoDispose修饰符销毁提供者的状态的。它是以某种方式订阅了导航器的更改吗?
文件指出:
A common use case is to destroy the state of a provider when it is no-longer used.
There are multiple reasons for doing so, such as:
- When using Firebase, to close the connection and avoid unnecessary cost.
- ***To reset the state when the user leaves a screen and re-enters it.****
1条答案
按热度按时间8qgya5xd1#
“autoDispose”逻辑不依赖于Flutter特定逻辑。
相反,它完全依赖于当前是否正在侦听提供程序。
当一个路由被弹出时,相关的小部件被销毁,这会导致该路由中的
ConsumerWidget
停止监听它们的“被监视”提供者。然后,如果提供者现在没有更多的侦听器,它将被释放。