如何从颤振中的另一个小部件更改提供者中的变量?

时间:2021-02-25 09:05:06

标签: flutter

我在我的项目中使用 pusher 并在通过订阅私人频道在 main 中运行整个应用程序之前对其进行初始化。我想在我的小部件中使用这些通知并显示一些信息。

我在使用 ChangeNotifier 时遇到问题:如果我更改目标小部件内的值,替换会正常进行并显示,但是如果我通过提供程序从 main 更改值,我看不到更改在屏幕上。

我做错了什么?

当一个通知通过 Pusher 到达频道时,我通过 setAuth 改变状态:

channel.bind("order-status-updated", (PusherEvent event) {
  print(event.data);
  PusherModel().setAuth();
});

PusherModel:

class PusherModelProcob with ChangeNotifier {
bool auth;
PusherModelProcob({this.auth});

var _authInfo = false;

get authInfo => _authInfo;

void setAuth(){
_authInfo = true;
notifyListeners();
}

}

我想在我的主页小部件中显示 _authInfo 变量,所以我开始监听变化:

var shouldProceed = Provider.of<PusherModel>(context, listen: true);

然后我显示:

Container(
              child: Text(shouldProceed.authInfo.toString()),
            ),

如果我调用 PusherModel()。 SetAuth(); 在 HomeWidget 中,我会看到变化,但我想从 Main 更改状态

我很乐意为您提供帮助!

0 个答案:

没有答案