'why does this log the old value and not the new value [duplicate]
const [title,setTitle] = useState("");
const titleHandler=e => {
setTitle(e.target.value)
console.log(title)
}
Why does this code log the old value of title and not the new one. I'm new to js and react please can anyone explain this to me
Solution 1:[1]
it happend because when you call setTitle
it doesn't update the state instantaneously but it trigger a rerender of the component with the updated state
if you do
const [title,setTitle] = useState("");
const titleHandler=e => {
setTitle(e.target.value)
console.log('updating title')
}
useEffect(() => {
console.log('title updated', title)
}, [title])
you can see for yourself
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | R4ncid |