0

enter image description here

Environment

  • expo-router: 6.0.14
  • react-native: 0.81.5
  • react: 19.1.0
  • @react-navigation/bottom-tabs: 7.4.0
  • @react-navigation/native: 7.1.8
  • expo: 54.0.12

Tab Layout Configuration

// app/(tabs)/_layout.tsx
<Tabs
  tabBar={(props) => <CustomTabBar {...props} />}
  screenOptions={{
    headerShown: false,
    animation: "shift",
    lazy: true,
    freezeOnBlur: true,
  }}
>
  <Tabs.Screen name="index" options={{ title: "Invest", lazy: true }} />
  <Tabs.Screen name="mini-apps" options={{ title: "Mini Apps", freezeOnBlur: true, lazy: true }} />
  <Tabs.Screen name="rewards" options={{ title: "Rewards", lazy: false, freezeOnBlur: false }} />
  <Tabs.Screen name="card" options={{ title: "Card", lazy: false, freezeOnBlur: false }} />
</Tabs>

Example Tab Component

// app/(tabs)/card.tsx
const CardScreen = memo(() => {
  const router = useRouter();
  const theme = useComponentsTheme();
  const { t } = useTranslation();

  return (
    <ScrollView contentContainerStyle={{ flex: 1, backgroundColor: theme.cardBackground }}>
      <ConfigHeader />
      <ScreenTitle title={t("card_title")} subtitle={t("card_subtitle")} />
      {/* ... rest of content */}
    </ScrollView>
  );
});

export default CardScreen;

What I've Tried

  • Different lazy and freezeOnBlur configurations
  • Using memo() on screen components

The blank screens appear randomly, not consistently on specific tabs.

1 Answer 1

0

https://github.com/expo/expo/issues/39514

issue with expo sdk 54 + expo-router

adding detachInactiveScreens={false} or removing animation fixes it

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.