Please provide the following:
- SDK Version: 49
- Platforms(Android/iOS/web/all): Android
- Router: 2
Below is my code. I am new to Expo.
import React, { useEffect, useState } from “react”;
import {
Slot,
useRouter,
useRootNavigationState,
useSegments,
} from “expo-router”;
import authStorage from “…/storage”;export default function Layout() {
const [user, setUser] = useState();
const router = useRouter();
const navigationState = useRootNavigationState();
const segments = useSegments();useEffect(() => {
restoreUser();
},[ ]);const restoreUser = async () => {
const userData = await authStorage.getUser();
if (userData) setUser(userData);
};useEffect(() => {
if (!navigationState?.key) return;const inTabsGroup = segments[0] === "(home)"; if (user && !inTabsGroup) { router.replace("/home"); } else { router.replace("/login"); }
}, [user, navigationState?.key, segments]);
return < Slot />;
}
I am encountering the following error:
Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn’t have a dependency array, or one of the dependencies changes on every render.
in SceneView (created by QualifiedSlot)
Please help.