flutter 如何使使用Riverpod创建的所有提供程序无效?

fivyi3re  于 2023-03-19  发布在  Flutter
关注(0)|答案(1)|浏览(163)

假设我们已经创建了许多提供程序(例如超过30个),它们在我们应用程序的不同部分工作。现在用户决定注销他的帐户,我们希望在按下注销按钮时使所有这些提供程序无效。我知道常用的方法是使用“invalidate()'方法。对我来说有点长。而且据我所知,我们可以使用autoDispose(),但此过程似乎不会使提供程序无效,它只是简单地将他重置为默认值。如果我错了,请随意更正我,因为我是新使用Riverpod状态管理的。所以我想知道的是:有没有什么简单的方法可以同时使所有这些提供程序无效,而不必使用“invalidate()”逐个使其无效?
我已经尝试过AutoDispose和Invalidate()。

xzlaal3s

xzlaal3s1#

确保你有一个提供者拥有当前用户...例如,一个正在监视Firebase的authStateChanges的流提供者。然后,对于每个必须在注销或用户更改时失效的提供者,即使你不需要ref.watch(thatProvider)的值,也要包含它。
这将确保每个依赖提供程序至少都将失效,并且如果被监听或监视,也将被重建。

相关问题