下に挙げたコードはfirebase authのログインユーザーを取得するカスタムフックなのですが、フックの内部でuseEffectが使われています。
useEffectについてcomponentDidMount
とcomponentDidUpdate
とcomponentWillUnmount
を関数コンポーネントで表現する手段として理解しているのですが、hooksを使う場合にこのライフサイクルがイメージできず、結局このuseEffectが何をしているのかわかりません。
一応useEffectを取り除いても動作するのですが、その場合はunlistenが走らないということになるのでしょうか?
js
1export default function useAuthentication() { 2 const [loginUser, setLoginUser] = useState(null); 3 4 useEffect(() => { 5 const unlisten = auth.onAuthStateChanged(loginUser => { 6 loginUser ? setLoginUser(loginUser) : setLoginUser(null); 7 }); 8 return () => { 9 unlisten(); 10 }; 11 }); 12 13 return loginUser; 14} 15
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/29 02:00
2020/10/29 14:41
2020/10/29 18:44