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?