如何解决Flutter:从小部件树外部访问提供程序
在我的Flutter应用程序中,我必须在推送通知到达后立即更新提供商的状态保留,以便可以重建UI。 PushNotifications服务是这样的类(不是小部件):
class PushNotifications {
...
Future<void> init() async {
_firebaseMessaging.configure(onMessage: (Map<String,dynamic> data) {
// here I receive the data from the notification that I have to add to the provider
});
}
}
这是我简单的提供者:
class NewsProvider with ChangeNotifier {
List<News> _news;
get news => _news;
NewsProvider();
void addNews(News news) {
_news.add(news);
notifyListeners();
}
}
由于PushNotifications类没有上下文,因此我无法提出实现目标的方法。
解决方法
请检查Riverpod,它基本上是提供程序,没有限制。 Riverpod与Provider非常相似,并且由同一位作者Remi Rousselet创建。
根据作者:
Riverpod 项目可以被视为提供者的重写,以进行本来不可能的改进。
Riverpod的官方网站:https://riverpod.dev/
Pub.dev上的Riverpod:https://pub.dev/packages/riverpod
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。