Home > Blockchain >  How to get value of updated state immediatly in useEffect
How to get value of updated state immediatly in useEffect

Time:02-24

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])
  • Related