Forráskód Böngészése

♻️ refactor(login): 重构登录逻辑为 hooks 实现

- 移除 authManager 直接调用,改用 useAuth hooks 获取登录方法和加载状态
- 删除本地 loading 状态管理,统一使用 useAuth 提供的 isLoading
- 调整 login 参数格式,传递符合 LoginRequest 类型的对象参数
- 优化代码注释,使逻辑更清晰
- 移除冗余的 finally 块和 console.log 调试信息
- 更新登录按钮禁用状态判断条件,使用 isLoading 替代 loading
yourname 4 hónapja
szülő
commit
4edc15f3e5
1 módosított fájl, 16 hozzáadás és 16 törlés
  1. 16 16
      mini/src/pages/login/index.tsx

+ 16 - 16
mini/src/pages/login/index.tsx

@@ -1,16 +1,16 @@
 import { View, Input, Button, Text, Image } from '@tarojs/components'
 import { useState, useEffect } from 'react'
 import Taro from '@tarojs/taro'
-import { authManager } from '../../utils/auth'
 import './index.css'
+import { useAuth } from '@/utils/auth'
 
 export default function Login() {
   const [username, setUsername] = useState('')
   const [password, setPassword] = useState('')
-  const [loading, setLoading] = useState(false)
   const [showPassword, setShowPassword] = useState(false)
+  const { login, isLoading } = useAuth() // 使用 useAuth 获取登录方法和加载状态
 
-  // 页面加载动画效果
+  // 设置导航栏标题
   useEffect(() => {
     Taro.setNavigationBarTitle({
       title: '用户登录'
@@ -54,17 +54,19 @@ export default function Login() {
       })
       return
     }
-
-    setLoading(true)
     
     try {
-      // 添加加载动画
+      // 显示加载动画
       Taro.showLoading({
         title: '登录中...',
         mask: true
       })
 
-      const user = await authManager.login(username.trim(), password.trim())
+      // 使用 useAuth 提供的 login 方法,传递符合 LoginRequest 类型的参数
+      await login({
+        username: username.trim(),
+        password: password.trim()
+      })
       
       Taro.hideLoading()
       
@@ -108,8 +110,6 @@ export default function Login() {
           duration: 3000
         })
       }
-    } finally {
-      setLoading(false)
     }
   }
 
@@ -117,7 +117,6 @@ export default function Login() {
     Taro.navigateTo({ 
       url: '/pages/register/index',
       success: () => {
-        // 页面跳转成功后的回调
         console.log('跳转到注册页面')
       },
       fail: (error) => {
@@ -147,7 +146,7 @@ export default function Login() {
 
   // 处理键盘完成事件
   const handleInputConfirm = () => {
-    if (username && password && !loading) {
+    if (username && password && !isLoading) {
       handleLogin()
     }
   }
@@ -204,12 +203,12 @@ export default function Login() {
         </View>
         
         <Button
-          className={`login-button ${loading ? 'loading' : ''}`}
-          loading={loading}
+          className={`login-button ${isLoading ? 'loading' : ''}`}
+          loading={isLoading}
           onClick={handleLogin}
-          disabled={loading || !username || !password}
+          disabled={isLoading || !username || !password}
         >
-          {loading ? '登录中...' : '安全登录'}
+          {isLoading ? '登录中...' : '安全登录'}
         </Button>
         
         <View className="login-footer">
@@ -232,4 +231,5 @@ export default function Login() {
       </View>
     </View>
   )
-}
+}
+