我正在尝试设置一个用于我的登录页面的上下文挂钩。我正在使用打字稿。我启动了上下文挂钩,但遇到了类型声明的问题。当我尝试使用 setUser 时,会弹出以下错误:类型“{}”上不存在属性“setUser”。
这是到目前为止我的上下文挂钩。
import { createContext, ReactNode, useEffect, useState } from "react"
interface Props {
children?: ReactNode
}
export const UserContext = createContext({})
export function UserContextProvider({children}: Props) {
const [user, setUser] = useState(null)
return (
{children}
)
}
这是我的登录代码。
import { Link, Navigate } from "react-router-dom"
import axios from 'axios'
import { UserContext } from "../UserContext"
const Login = () => {
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
const [redirect, setRedirect] = useState(false)
**const {setUser} = useContext(UserContext)**
async function handleLogin(e: any) {
e.preventDefault()
try {
const userInfo = await axios.post('/auth/login', {email, password})
setUser(userInfo)
alert('Login')
setRedirect(true)
} catch (e) {
alert('Login failed')
}
}
if(redirect){
return
}
return (
Login
)
}
export default Login Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号