Вы можете сохранить состояние в localStorage после размонтирования и снова заполнить его в initialState
const Contact = () => {
const [count, setCount] = useState(JSON.parse(localStorage.getItem("count")));
useEffect(() => {
return () => {
console.log("unmounted");
};
});
useEffect(() => {
console.log("mounted");
return () => {
localStorage.setItem("count", count);
};
}, [count]);
return (
<div onClick={() => setCount(prevCount => prevCount + 1)}>
You're on the Contact Tab. You pressed me {count} times
</div>
);
};
Другое решение состоит в том, чтобы не поддерживать состояние в компоненте контакта, а в компоненте приложения и передавать его в Contact как props * 1004. *
<Route path={`${path}/contact`} render={(routerProps) => <Contact {...routeProps} count={count} setCount={setCount}/>} />