Как мне реализовать componentDidMount()
и componentWillUnmount()
?
Использовать useEffect
с пустым массивом для эмуляции componentDidMount
; затем верните функцию из того же useEffect
для эмуляции componentWillUnmount
.
В вашем коде useEffect
вернет функцию, что означает, что эта функция будет выполняться, когда компонент будет размонтирован, поэтому firebase.auth().onAuthStateChanged
будет подключен, когда вы закончите с компонентом Login
.
Чтобы сделать правильный крючок, установите useEffect
следующим образом:
useEffect(() => {
const unregisterAuthObserver = firebase.auth()
.onAuthStateChanged(
(user) => setSignIn({isSignedIn: !!user})
);
// Now you either return just unregisterAuthObserver
// which will be called when the component is unmounted
return unregisterAuthObserver;
// or you create a function if you want more login when the component is unmounted
// return () => {
// unregisterAuthObserver();
// console.log("Sdd");
// }
}, []); // Important, pass an empty array so to execute useEffect hook only once