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)