setstate with callback code example
Example 1: pass variable to setstate callback
selectHandler(event){
const { target } = event;
this.setState({
selectedImage: target
}, () => {
this.markSelectedHandler(target)
})
}
markSelectedHandler(target){
target.classList.add('active')
if(target!== this.state.selectedImage && this.state.selectedImage){
this.state.selectedImage.classList.remove('active')
target.classList.add('active')
}
}
Example 2: react callback set staet
setState( { name: "Michael" }, () => console.log(this.state));// => { name: "Michael" }
Example 3: react functional components setstate callback
const [state, setState] = useState({ name: "Michael" })
const isFirstRender = useRef(true)
useEffect(() => {
if (!isFirstRender.current) {
console.log(state) // do something after state has updated
}
}, [state])
useEffect(() => {
isFirstRender.current = false // toggle flag after first render/mounting
}, [])