import React, { useState, useEffect } from 'react'; import { login } from '../api/auth'; import { useNavigate, Link } from 'react-router-dom'; const Login: React.FC = () => { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const navigate = useNavigate(); const [isLogin, setIsLogin] = useState(!!localStorage.getItem('token')); useEffect(() => { const onStorage = () => setIsLogin(!!localStorage.getItem('token')); window.addEventListener('storage', onStorage); return () => window.removeEventListener('storage', onStorage); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); try { const res = await login(username, password); localStorage.setItem('token', res.token); localStorage.setItem('username', res.username); window.dispatchEvent(new Event('tokenChange')); navigate('/'); } catch (err: any) { setError(err.response?.data?.message || '登录失败'); } }; return (

登录

setUsername(e.target.value)} required /> setPassword(e.target.value)} required /> {error &&
{error}
}
没有账号?注册
); }; export default Login;