【问题标题】:Flutter + FCM: Cant change UI in onMessage methodFlutter + FCM:无法在 onMessage 方法中更改 UI
【发布时间】:2020-10-27 00:54:54
【问题描述】:

我在 Flutter 中使用 Firebase FCM 在收到消息时通知应用。我的小部件(返回 Scaffold)的 initState 方法如下所示:

@override
void initState() {
super.initState();

FcmService(_fcm).saveDeviceToken();

_fcm.configure(
  onMessage: (Map<String, dynamic> message) async {
    print('Notification received');

    final snackbar = SnackBar(
      content: Text(message['notification']['title']),
      action: SnackBarAction(
        label: 'Go',
        onPressed: () => null,
      ),
    );
    Scaffold.of(context).showSnackBar(snackbar);
  },
);
}

当消息发送到设备时,打印被执行,所以一切都应该正常,但是 SnackBar 没有出现。我还尝试显示 AlertDialog 或仅使用 setState 并更改标签上显示的变量来测试这是否是 SnackBar 独有的东西,但事实并非如此。尽管方法已执行,但没有任何改变。

【问题讨论】:

  • 您是否尝试过使用脚手架键显示小吃店?
  • @P4yam 它使用脚手架钥匙工作,谢谢!!!

标签: firebase flutter firebase-cloud-messaging


【解决方案1】:

你不能从 initstate 得到一个脚手架状态, 如果您需要在 initstate 中调用它,或者只是从 build 方法中调用它,请尝试使用将来的延迟方法。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 2021-01-21
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2020-12-17
    • 2018-11-30
    • 2020-11-29
    相关资源
    最近更新 更多