使用提供程序时在Flutter中清除状态

时间:2019-09-03 17:34:26

标签: flutter dart

如何在Flutter应用中手动清除提供商的当前状态?我的用例是,当用户退出我的应用程序,然后以新用户/不同用户的身份注册时,以前的用户状态仍存储在提供程序中,但是当应用程序重新启动时会自动清除。

1 个答案:

答案 0 :(得分:1)

您可以使用键来硬重置子树的状态。

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

最后,您将获得:

Widget build(BuildContext context) {
  return Provider(
    key: ObjectKey(someIdentifier),
    builder: (_) => Foo(),
    child: SomeSubtree(
      key: GlobalObjectKey(context),
    ),
  );
}

在这种情况下,如果someIdentifier发生变化,则Provider的状态将重置,但是Subtree将保留。