簡體   English   中英

Flutter + FCM:無法在 onMessage 方法中更改 UI

[英]Flutter + FCM: Cant change UI in onMessage method

我使用 Flutter 中的 Firebase FCM 在收到消息時通知 App。 我的小部件(返回 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 並更改 label 上顯示的變量來測試這是否是 SnackBar 獨有的東西,但事實並非如此。 盡管執行了該方法,但沒有任何改變。

您無法從 initstate 獲取腳手架狀態,如果您必須在 initstate 中調用它,請嘗試使用將來的延遲方法,或者只是從 build 方法中調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM