diff --git a/lib/pages/dynamics/view.dart b/lib/pages/dynamics/view.dart index ce240e627..4de8e7a4d 100644 --- a/lib/pages/dynamics/view.dart +++ b/lib/pages/dynamics/view.dart @@ -59,7 +59,7 @@ class _DynamicsPageState extends State }), ), onPressed: () { - if (GStorage.userInfo.get('userInfoCache') != null) { + if (GStorage.isLogin) { showModalBottomSheet( context: context, useSafeArea: true, diff --git a/lib/pages/dynamics/widgets/up_panel.dart b/lib/pages/dynamics/widgets/up_panel.dart index 528afa9bf..955cc5f13 100644 --- a/lib/pages/dynamics/widgets/up_panel.dart +++ b/lib/pages/dynamics/widgets/up_panel.dart @@ -97,9 +97,9 @@ class _UpPanelState extends State { upItemBuild(UpItem(face: '', uname: '全部动态', mid: -1), 0), upItemBuild( UpItem( - face: userInfo.face, + face: userInfo?.face, uname: '我', - mid: userInfo.mid, + mid: userInfo?.mid, ), 1), for (int i = 0; i < upList.length; i++) ...[ diff --git a/lib/pages/home/controller.dart b/lib/pages/home/controller.dart index 44ce47689..497a6b3c3 100644 --- a/lib/pages/home/controller.dart +++ b/lib/pages/home/controller.dart @@ -59,7 +59,7 @@ class HomeController extends GetxController with GetTickerProviderStateMixin { } // 更新登录状态 - void updateLoginStatus(val) async { + Future updateLoginStatus(val) async { userInfo = await userInfoCache.get('userInfoCache'); userLogin.value = val ?? false; if (val) return; diff --git a/lib/utils/login.dart b/lib/utils/login.dart index 2381ec145..5ea6c41e5 100644 --- a/lib/utils/login.dart +++ b/lib/utils/login.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:math'; +import 'package:PiliPalaX/utils/extension.dart'; import 'package:crypto/crypto.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -14,20 +15,18 @@ class LoginUtils { static Future refreshLoginStatus(bool status) async { try { // 更改我的页面登录状态 - await Get.find().resetUserInfo(); + if (status.not) { + await Get.find().resetUserInfo(); + } // 更改主页登录状态 - HomeController homeCtr = Get.find(); - homeCtr.updateLoginStatus(status); + Get.find().updateLoginStatus(status); - MineController mineCtr = Get.find(); - mineCtr.userLogin.value = status; + Get.find().userLogin.value = status; - DynamicsController dynamicsCtr = Get.find(); - dynamicsCtr.userLogin.value = status; + Get.find().userLogin.value = status; - MediaController mediaCtr = Get.find(); - mediaCtr.userLogin.value = status; + Get.find().userLogin.value = status; } catch (err) { // SmartDialog.showToast('refreshLoginStatus error: ${err.toString()}'); debugPrint('refreshLoginStatus error: $err'); diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 16c1348df..cd469ec40 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -78,6 +78,7 @@ class Utils { '${GStorage.setting.get(SettingBoxKey.defaultRcmdType, defaultValue: 'web')}' '端」推荐'); await GStorage.userInfo.put('userInfoCache', result['data']); + try { final HomeController homeCtr = Get.find(); homeCtr.updateLoginStatus(true);