我在我的项目中使用 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 更改状态
我很乐意为您提供帮助!