我正在尝试使用共享首选项保存通知标题和 body,但我无法

I am trying to save the notification title and body using shared preference but i am unable to

#我正在尝试在本地保存通知标题和 body 并在我的应用程序中获取标题和 body 以在列表视图中显示所有已发送的通知,但我无法

#this is the code i am 运行 这个代码在我的 main.dart inside initstate 中 detail.add 是我手动创建的列表,但我收到错误提示 102:45:错误:此表达式的类型为 'void',不能为 used.prefs.setString('notificationData', setData);当我尝试设置字符串时,这是我得到的错误

List<String?> detail = [];
FirebaseMessaging.onMessage.listen((message) async{
      if(message.notification!=null){
        // print(message.notification!.body);
        // print(message.notification!.title);
        final title = message.notification?.title;
        final body = message.notification?.body;
         SharedPreferences prefs = await SharedPreferences.getInstance();
         final String notificationData = json.encode({"title":title,"body":body});
         final setData =  detail.add(notificationData);
        prefs.setString('notificationData', setData);
        print(notificationData);
        print(setData);
      }

detail.add(notificationData) 函数 returns 什么都没有 (void) 并且只添加到现有数组中,所以你的 setData 变量是空的但你可以使用原始更新detail 数组如下:

FirebaseMessaging.onMessage.listen((message) async{
  if(message.notification!=null){
    // print(message.notification!.body);
    // print(message.notification!.title);
    final title = message.notification?.title;
    final body = message.notification?.body;
    SharedPreferences prefs = await SharedPreferences.getInstance();
    final String notificationData = json.encode({"title":title,"body":body});
    detail.add(notificationData);
    prefs.setString('notificationData', detail.toString());
    print(notificationData);
    print(detail);
  }
//...
});