React JS state variables – why does the setter not execute but explicitly setting individual attributes does? [duplicate]

const updateAttempt = () => {
  //const newAttempt = { attempt: currAttempt.attempt + 1, letterPos: 0 };
  //setCurrAttempt(newAttempt);
  currAttempt.attempt = currAttempt.attempt + 1;
  currAttempt.letterPos = 0;
}

The commented lines don’t update currAttempt, but the uncommented lines do. I’m just wondering why?