-1

Is there any practical or functional difference between functional and non-functional React setState?

For example:

const [data, setData] = useState(null)

setData(prev => newData)

As opposed to:

const [data, setData] = useState(null)

setData(newData)
Arcanus
  • 642
  • 5
  • 20

1 Answers1

3

There are an important difference. If you use "prev" inside "useState", give you a guarantee that you are getting the latest state, despite the previous setState hasn't finished yet

function Question6() {
  const [data, setData] = useState(0);

  useEffect(() => {
    // Result will be 1
      // setData(data + 1);
      // setData(data + 1);
    // Result will be 2
      setData(data + 1);
      setData(prev => prev + 1);

  }, []);

  return (<div>data: {data}</div>);
}

export default Question6;

I hope I've helped you