Maximum update depth exceeded - Expo 49 - Router 2

Please provide the following:

  1. SDK Version: 49
  2. Platforms(Android/iOS/web/all): Android
  3. 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.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.