上下文为空

时间:2019-12-18 20:33:04

标签: flutter dart

我是新手。我创建了一个声明为StatefulWidget的{​​{1}},其中有一个initState()函数,该函数调用_firebaseMessaging.configure()。第一次运行时,它工作正常,但是在多次更改页面后,每次都有一个推送通知,这意味着showDialog()中的函数会再次被调用。那时,我发现调用_firebaseMessaging.configure()时上下文为空。怎么了?

这是我的代码:

showDialog()

1 个答案:

答案 0 :(得分:0)

问题是要避免重新配置
官方示例运行良好,因为只有页面不会重新配置问题
这就是为什么第一次运行良好并在更改某些页面后会导致重新配置的问题
https://github.com/flutter/flutter/issues/32698#issuecomment-525370455中的一种方法
使用bool检查它是否已经配置

bool _isConfigured = false;

...

if (!_isConfigured) {
  _firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) {
      print('onMessage: '+message.toString());
      return;
    },
    onResume: (Map<String, dynamic> message) {
      print('onResume: '+message.toString());
      return;
    },
    onLaunch: (Map<String, dynamic> message) {
      print('onLaunch: '+message.toString());
      return;
    },
  );
  _isConfigured = true;
}