Home > Blockchain >  How to execute call after setState finish?
How to execute call after setState finish?

Time:07-03

Got this call:

setPou2({ ...pou2, imgId: po?.imgId2 }, () => {})

and it raise an error:

Expected 1 arguments, but got 2.

CodePudding user response:

It's due to you are passing 2nd argument of call. setPou2({...pou2, imgId:po?.imgId2}) this will not raise any error.

If you want callback function after change in state you need to use useEffect by passing that particular state as array.

useEffect(()=>{
  // function you want to run
},[pou2])

or you can check this useStateWithCallback

CodePudding user response:

In react functional components you can only pass 1 argument to the setState function. You can use instead a react useEffect hook to achieve that:

useEffect(() => {
  // the logic here will be executed each time after pou2 state has changed
}, [pou2]);

Docs: https://reactjs.org/docs/hooks-effect.html

  • Related