This takes place in a functional component:
import {useEffect} from 'react';
let [clickedOnPiece, setClickedOnPiece] = useState(false);
let [testRender, setTestRender] = useState(false);
useEffect(() => {
  testRenderFunction();
}, [])
function testRenderFunction() {
  let el = <div onClick={onClickHandler}>Click me</div>;
  setTestRender(el);
}
function onClickHandler() {
  if (clickedOnPiece) {
    console.log("already clicked")
    return
  }
  console.log(clickedOnPiece); //returns false the 1st & 2nd time.
  setClickedOnPiece("clicked");
}
return (
  <>
    {testRender}
  </>
)
When I click on div for the first time, I wait until setClickedOnPiece("clicked") successfully updates clickedOnPiece to "clicked". (I check this with React Developer Tools).
When I click div the 2nd time, it doesn't log the new change in state. It still logs clickedOnPiece as false. Why is this?