Flutter:从小部件树外部访问提供程序

时间:2020-11-08 19:06:01

标签: flutter push-notification provider flutter-state

在我的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类没有上下文,因此我无法提出实现目标的方法。

1 个答案:

答案 0 :(得分:1)

请检查Riverpod,它基本上是提供程序,没有限制。 Riverpod与Provider非常相似,并且由同一位作者Remi Rousselet创建。

根据作者:

Riverpod 项目可以被视为提供者的重写,以进行本来不可能的改进。

Riverpod的官方网站:https://riverpod.dev/

Pub.dev上的Riverpod:https://pub.dev/packages/riverpod