diff --git a/lib/pages/member/controller.dart b/lib/pages/member/controller.dart index 8454cebe..6987337b 100644 --- a/lib/pages/member/controller.dart +++ b/lib/pages/member/controller.dart @@ -32,7 +32,7 @@ class MemberController extends GetxController { @override void onInit() { super.onInit(); - mid = int.parse(Get.parameters['mid']!); + mid = int.tryParse(Get.parameters['mid']!) ?? -2; userInfo = userInfoCache.get('userInfoCache'); ownerMid = userInfo != null ? userInfo.mid : -1; isOwner.value = mid == ownerMid; @@ -43,6 +43,11 @@ class MemberController extends GetxController { // 获取用户信息 Future> getInfo() async { + if (mid == -2) { + SmartDialog.showToast('用户ID获取异常'); + return {'status': false, 'msg': '用户ID获取异常'}; + } + await getMemberStat(); await getMemberView(); var res = await MemberHttp.memberInfo(mid: mid); diff --git a/lib/pages/member/view.dart b/lib/pages/member/view.dart index df501253..4ebc6153 100644 --- a/lib/pages/member/view.dart +++ b/lib/pages/member/view.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; import 'package:pilipala/common/constants.dart'; @@ -36,7 +37,7 @@ class _MemberPageState extends State @override void initState() { super.initState(); - mid = int.parse(Get.parameters['mid']!); + mid = int.tryParse(Get.parameters['mid']!) ?? -1; heroTag = Get.arguments['heroTag'] ?? Utils.makeHeroTag(mid); _memberController = Get.put(MemberController(), tag: heroTag); _futureBuilderFuture = _memberController.getInfo(); @@ -100,8 +101,14 @@ class _MemberPageState extends State ), actions: [ IconButton( - onPressed: () => Get.toNamed( - '/memberSearch?mid=$mid&uname=${_memberController.memberInfo.value.name!}'), + onPressed: () { + if (mid == -1) { + SmartDialog.showToast('用户ID获取异常'); + return; + } + Get.toNamed( + '/memberSearch?mid=$mid&uname=${_memberController.memberInfo.value.name ?? ''}'); + }, icon: const Icon(Icons.search_outlined), ), PopupMenuButton(