Flutter 使用提供程序时清除颤振状态
如何在我的Flatter应用程序中手动清除提供商的当前状态?我的使用案例是,当用户注销我的应用程序,然后作为新用户/不同用户注册时,以前的用户状态仍存储在提供程序中,但当应用程序重新启动时,它会自动清除。您可以使用键硬重设子树的状态 如果只想部分重置子树,可以在另一个键的顶部添加一个GlobalKey 最后,您将拥有:Flutter 使用提供程序时清除颤振状态,flutter,dart,Flutter,Dart,如何在我的Flatter应用程序中手动清除提供商的当前状态?我的使用案例是,当用户注销我的应用程序,然后作为新用户/不同用户注册时,以前的用户状态仍存储在提供程序中,但当应用程序重新启动时,它会自动清除。您可以使用键硬重设子树的状态 如果只想部分重置子树,可以在另一个键的顶部添加一个GlobalKey 最后,您将拥有: 小部件构建(构建上下文){ 返回提供者( key:ObjectKey(someIdentifier), 生成器:()=>Foo(), 子树( 键:全局对象键(上下文), ), )
小部件构建(构建上下文){
返回提供者(
key:ObjectKey(someIdentifier),
生成器:()=>Foo(),
子树(
键:全局对象键(上下文),
),
);
}
在这种情况下,如果
someIdentifier
发生更改,Provider
的状态将重置,但子树
将被保留。不使用Provider,您只需重新初始化小部件,再次调用构造函数即可!您建议在何处存储“someIdentifier”的值以确保状态不会意外硬重置?这取决于您的用例。例如,它可以是userID,它不需要存储在任何地方