Ok so I know the componet is rerendered when the state changes, but what if I want to reset the state. Take a look the following example:
const Parent = ({ type }) => {
  switch (type) {
    case "number":
      return <ShowNumber />;
    case "text":
      return <ShowText />;
    default:
      return <h1>nothing to do here</h1>;
  }
};
const ShowNumber = () => {
  const [number, setNumber] = useState(0);
  return (
    <>
      <h1>{number}</h1>
      <button
        onClick={() => {
          setNumber(prevNumber => prevNumber + 1);
        }}
      >
        Update number from child
      </button>
    </>
  );
};
const ShowText = () => {
  return <h1>{"Hello world"}</h1>;
};
export default () => {
  const [type, setStype] = useState("");
  return (
    <>
      <Parent type={type} />
      <button
        onClick={() => {
          setStype("number");
        }}
      >
        Show number
      </button>
      <button
        onClick={() => {
          setStype("text");
        }}
      >
        Show text
      </button>
    </>
  );
};
if I update my number and click on "Show text", then the ShowText component is called. Naturally if I go back to the ShowNumber component, my number is back to cero.
But what if I want to reset the number (or any other state related stuff) without switching (eg, every time I press the button "Show number" make my number go back to cero)

 
     
     
     
    