my form only writes the previous value
let [userStateLog, userSetStateLogin]:any = useState({login: ''})
function changeLogin(event:any){
userSetStateLogin({[event.target.name]:event.target.value})
}
<input placeholder="Login" name="login" onChange={changeLogin} className="login"/>
when writing a value through onchange, only the previous value is written to the state parameter
1 onchange event => event.targe.value = 1 => myState = ' '
2 onchange event => event.target.value = 12 => myState = '1'
3 onchange event => event.target.value = 123 => myState = '12'
I don't understand why myState is one step behind
How to fix it? When sending to another component and returning a checked value. Lagging can be observed in 2 - 3 steps. How do I fix this?
all code :
export default function Auth ():JSX.Element {
let [userStateLog, userSetStateLogin]:any = useState({login: ''})
function changeLogin(event:any){
let login:any = document.querySelector('.login')
userSetStateLogin({[event.target.name]:event.target.value})
console.log(userStateLog)
}
return(<>
<input placeholder="Login" name="login" onChange={changeLogin} className="login"/>
</>)
}
thanks to all! it helped me a lot!