重置提供商数据 - Flutter

Bab*_*tel 8 provider flutter flutter-change-notifier

我在我的应用程序中使用多提供商。Provider 工作得很好,它存储数据,并且在任何事情发生变化时提供完美的事件。

现在,我的应用程序中有这个场景 ->

用户 1 已登录。现在,当我在同一登录中添加第二个帐户(例如 Gmail - 多帐户)时,提供商会向我返回旧值。

我尝试搜索提供者的重置值,但无法找到与之相关的任何内容。

尝试过但没有成功:

  • 创建了要重置的新提供者对象。
  • Provider.of<LoginProvider>(context).dispose();

Aug*_*n R 1

要更新提供程序值,您可以使用.value()构造函数调用它并使用状态相关变量。

class SomeWidgetState extends State<SomeWidget> {
    Logins logins = [];

    void addLogin(Login newLogin) {
        setState((){
            logins = [...logins, newLogin];
        });
    }

    @override
    Widget build(BuildContext context) {
        return Provider.value(
            value: logins,
            child: OtherWidget(),
        );
    }
Run Code Online (Sandbox Code Playgroud)

调用时addLoginProvider中注册的值会被更新。