0
0
React Nativemobile~20 mins

Tab Navigator (Bottom Tabs) in React Native - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Bottom Tabs Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
ui_behavior
intermediate
2:00remaining
What is the initial screen shown by this Bottom Tab Navigator?
Consider this React Native code using React Navigation's Bottom Tabs. Which screen will appear first when the app loads?
React Native
import React from 'react';
import { Text, View } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

function HomeScreen() {
  return <View><Text>Home Screen</Text></View>;
}

function SettingsScreen() {
  return <View><Text>Settings Screen</Text></View>;
}

const Tab = createBottomTabNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Tab.Navigator initialRouteName="Settings">
        <Tab.Screen name="Home" component={HomeScreen} />
        <Tab.Screen name="Settings" component={SettingsScreen} />
      </Tab.Navigator>
    </NavigationContainer>
  );
}
AHome Screen
BSettings Screen
CBlank screen with no text
DApp crashes with error
Attempts:
2 left
💡 Hint
Look at the initialRouteName prop in the Tab.Navigator component.
📝 Syntax
intermediate
2:00remaining
Which option correctly adds a badge with number 3 on the Notifications tab?
You want to show a badge with the number 3 on the Notifications tab in a Bottom Tab Navigator. Which code snippet correctly does this?
React Native
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

const Tab = createBottomTabNavigator();

<Tab.Navigator>
  <Tab.Screen
    name="Notifications"
    component={NotificationsScreen}
    options={/* Which option here? */}
  />
</Tab.Navigator>
Aoptions={{ tabBarOptions: { badge: 3 } }}
Boptions={{ badge: 3 }}
Coptions={{ tabBarBadge: 3 }}
Doptions={{ tabBarBadgeText: '3' }}
Attempts:
2 left
💡 Hint
The property to show a badge on a tab is tabBarBadge.
lifecycle
advanced
2:00remaining
When does the component inside a Bottom Tab Screen unmount?
In a Bottom Tab Navigator, when does the component of a tab screen unmount by default?
AEvery time the tab is focused
BWhen the user navigates away to another tab
CImmediately after the screen is rendered
DOnly when the navigator unmounts or the screen is removed
Attempts:
2 left
💡 Hint
Think about whether switching tabs destroys the screen component by default.
navigation
advanced
2:00remaining
What happens if you call navigation.navigate('Profile') but 'Profile' is not a tab screen?
In a Bottom Tab Navigator with tabs Home and Settings only, what happens if you call navigation.navigate('Profile')?
AThe app throws an error: 'There is no route named Profile'
BThe app navigates to the last visited tab
CThe app stays on the current tab without any change
DThe app navigates to a blank screen with no content
Attempts:
2 left
💡 Hint
Navigation only works to registered routes in the navigator.
🧠 Conceptual
expert
2:00remaining
How to preserve state in a tab screen when switching tabs?
You want to keep the state of a tab screen (like scroll position or form input) when switching between tabs in a Bottom Tab Navigator. What is the best approach?
ADo nothing, state is preserved by default
BUse lazy: true in Tab.Navigator props
CUse unmountOnBlur: true in screen options
DWrap the screen component in React.memo
Attempts:
2 left
💡 Hint
Think about whether tab screens unmount by default when switching tabs.