6

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

现在,我的应用程序中有这种情况->

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

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

尝试过但没有用:

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

1 回答 1

1

要更新 Provider 值,您可以使用.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(),
        );
    }

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

于 2020-01-06T09:57:04.573 回答