In the following I am updating the value of a state and then trying to use it inside useEffect only but cannot get the value of the updated state can anyone help me regarding how can i get updated state immediately inside useEffect only
Thank you
useEffect(() => {
dispatch(setSecondaryInvName(barcodeData))
console.log("secondaryInventoryName == ", secondaryInventoryName)
}
})
CodePudding user response:
you shouldn't and you cant.
first use useEffect like componentDidMount with []:
useEffect(() => {
dispatch(setSecondaryInvName(barcodeData))
}, [])
then you should use useEffect like componentDidUpdate with [secondaryInventoryName]:
useEffect(() => {
console.log("secondaryInventoryName == ", secondaryInventoryName)
}, [secondaryInventoryName])
CodePudding user response:
You can't get immediately updated value in useEffect instead of you have to make a dependency in useEffect whenever its value will update it will trigger. Like:
useEffect(() => {
dispatch(setSecondaryInvName(barcodeData))
}
},[])
useEffect(() => {
console.log("secondaryInventoryName == ", secondaryInventoryName)
}
},[secondaryInventoryName])
CodePudding user response:
Try to work with useEffect as ComponentDidUpdate
by adding the state in use effect. It will fire once the state changes.
Try this :
useEffect(() => {
dispatch(setSecondaryInvName(barcodeData))
console.log("secondaryInventoryName == ", secondaryInventoryName)
}
},[secondaryInventoryName])