Flutter - 用户从应用程序注销后如何擦除提供商数据?

Ran*_*jit 5 flutter flutter-provider flutter-state

我在我的 flutter 应用程序中使用提供程序进行状态管理。我已经使用Multiprovider.

我想在用户从应用程序注销时擦除提供商数据我已读过评论但不太理解。

Mig*_*ivo 1

如果您使用不同的密钥重建MultiProvider小部件,它会重置状态,从而重建提供程序。这就是那里所解释的。

因此,为了实现它,你需要做的是:

String userId = myUserId;

void signOut() {
   setState(() => userId = '');
}

Widget build(BuildContext context) {

  return MultiProvider(
    key: ObjectKey(userId),
    providers: // Your providers
    child: SomeSubtree(),
  );
}
Run Code Online (Sandbox Code Playgroud)

StatefulWidget假设您在本例中使用, 。您可以在此处阅读有关 Flutter 中按键如何工作的更多信息。