Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用提供程序时清除颤振状态_Flutter_Dart - Fatal编程技术网

Flutter 使用提供程序时清除颤振状态

Flutter 使用提供程序时清除颤振状态,flutter,dart,Flutter,Dart,如何在我的Flatter应用程序中手动清除提供商的当前状态?我的使用案例是,当用户注销我的应用程序,然后作为新用户/不同用户注册时,以前的用户状态仍存储在提供程序中,但当应用程序重新启动时,它会自动清除。您可以使用键硬重设子树的状态 如果只想部分重置子树,可以在另一个键的顶部添加一个GlobalKey 最后,您将拥有: 小部件构建(构建上下文){ 返回提供者( key:ObjectKey(someIdentifier), 生成器:()=>Foo(), 子树( 键:全局对象键(上下文), ), )

如何在我的Flatter应用程序中手动清除提供商的当前状态?我的使用案例是,当用户注销我的应用程序,然后作为新用户/不同用户注册时,以前的用户状态仍存储在提供程序中,但当应用程序重新启动时,它会自动清除。

您可以使用键硬重设子树的状态

如果只想部分重置子树,可以在另一个键的顶部添加一个GlobalKey

最后,您将拥有:

小部件构建(构建上下文){
返回提供者(
key:ObjectKey(someIdentifier),
生成器:()=>Foo(),
子树(
键:全局对象键(上下文),
),
);
}

在这种情况下,如果
someIdentifier
发生更改,
Provider
的状态将重置,但
子树
将被保留。

不使用Provider,您只需重新初始化小部件,再次调用构造函数即可!您建议在何处存储“someIdentifier”的值以确保状态不会意外硬重置?这取决于您的用例。例如,它可以是userID,它不需要存储在任何地方