From 55dbd9d5e509759f5dd7110ba5ea3117c81ea90c Mon Sep 17 00:00:00 2001 From: guozhigq Date: Tue, 10 Dec 2024 20:10:53 +0800 Subject: [PATCH] fix: system notify null error --- lib/http/msg.dart | 12 +++++--- lib/pages/message/system/view.dart | 45 +++++++++++++++++------------- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/lib/http/msg.dart b/lib/http/msg.dart index 65156e03..66238ca3 100644 --- a/lib/http/msg.dart +++ b/lib/http/msg.dart @@ -299,8 +299,10 @@ class MsgHttp { return { 'status': true, 'data': res.data['data']['system_notify_list'] - .map((e) => MessageSystemModel.fromJson(e)) - .toList(), + ?.map( + (e) => MessageSystemModel.fromJson(e)) + .toList() ?? + [], }; } catch (err) { return {'status': false, 'date': [], 'msg': err.toString()}; @@ -341,8 +343,10 @@ class MsgHttp { return { 'status': true, 'data': res.data['data']['system_notify_list'] - .map((e) => MessageSystemModel.fromJson(e)) - .toList(), + ?.map( + (e) => MessageSystemModel.fromJson(e)) + .toList() ?? + [], }; } catch (err) { return {'status': false, 'date': [], 'msg': err.toString()}; diff --git a/lib/pages/message/system/view.dart b/lib/pages/message/system/view.dart index 66e60735..daf4dcb2 100644 --- a/lib/pages/message/system/view.dart +++ b/lib/pages/message/system/view.dart @@ -2,6 +2,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:pilipala/common/widgets/http_error.dart'; +import 'package:pilipala/common/widgets/no_data.dart'; import 'package:pilipala/models/msg/system.dart'; import 'package:pilipala/pages/message/utils/index.dart'; import 'package:pilipala/utils/app_scheme.dart'; @@ -41,31 +42,35 @@ class _MessageSystemPageState extends State { if (snapshot.data == null) { return const SizedBox(); } - if (snapshot.data['status']) { - final systemItems = _messageSystemCtr.systemItems; + Map? data = snapshot.data; + if (data != null && data['status']) { + RxList systemItems = + _messageSystemCtr.systemItems; return Obx( - () => ListView.separated( - controller: scrollController, - itemBuilder: (context, index) => SystemItem( - item: systemItems[index], - index: index, - messageSystemCtr: _messageSystemCtr, - ), - itemCount: systemItems.length, - separatorBuilder: (BuildContext context, int index) { - return Divider( - indent: 14, - endIndent: 14, - height: 1, - color: Colors.grey.withOpacity(0.1), - ); - }, - ), + () => systemItems.isNotEmpty + ? ListView.separated( + controller: scrollController, + itemBuilder: (context, index) => SystemItem( + item: systemItems[index], + index: index, + messageSystemCtr: _messageSystemCtr, + ), + itemCount: systemItems.length, + separatorBuilder: (BuildContext context, int index) { + return Divider( + indent: 14, + endIndent: 14, + height: 1, + color: Colors.grey.withOpacity(0.1), + ); + }, + ) + : const CustomScrollView(slivers: [NoData()]), ); } else { // 请求错误 return HttpError( - errMsg: snapshot.data['msg'], + errMsg: data?['msg'] ?? '请求异常', fn: () { setState(() { _futureBuilderFuture =