0
0
React Nativemobile~20 mins

Stack Navigator in React Native - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Stack Navigator Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
ui_behavior
intermediate
2:00remaining
What happens when you call navigation.navigate('Profile')?
Given a React Native app using React Navigation's Stack Navigator with two screens: Home and Profile, what is the result of calling navigation.navigate('Profile') from the Home screen?
React Native
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { NavigationContainer } from '@react-navigation/native';
const Stack = createNativeStackNavigator();

function HomeScreen({ navigation }) {
  return null; // Imagine a button calls navigation.navigate('Profile')
}

function ProfileScreen() {
  return null;
}

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Profile" component={ProfileScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
AThe app navigates to the Profile screen and adds it on top of the stack.
BThe app replaces the Home screen with the Profile screen without adding to the stack.
CThe app goes back to the previous screen in the stack.
DThe app reloads the Home screen.
Attempts:
2 left
💡 Hint
Think about how stack navigation works when you navigate to a new screen.
lifecycle
intermediate
2:00remaining
What happens to the Home screen component when navigating to Profile?
In a Stack Navigator, when you navigate from Home to Profile, what happens to the Home screen component's state and lifecycle?
AHome screen component remains mounted and keeps its state.
BHome screen component is unmounted and destroyed.
CHome screen component is paused and loses its state.
DHome screen component reloads and resets its state.
Attempts:
2 left
💡 Hint
Think about how stack navigation keeps screens in memory.
📝 Syntax
advanced
2:00remaining
Which code correctly defines a Stack Navigator with two screens?
Choose the correct React Native code snippet that defines a Stack Navigator with Home and Profile screens.
A
const Stack = createNativeStackNavigator();

&lt;Stack.Screen name="Home" component={HomeScreen} /&gt;
&lt;Stack.Screen name="Profile" component={ProfileScreen} /&gt;
B
const Stack = createStackNavigator();

&lt;Stack.Navigator&gt;
  &lt;Stack.Screen name="Home" component={HomeScreen} /&gt;
  &lt;Stack.Screen name="Profile" component={ProfileScreen} /&gt;
&lt;/Stack.Navigator&gt;
C
const Stack = createNativeStackNavigator();

&lt;Stack.Navigator&gt;
  &lt;Stack.Screen name="Home" component={HomeScreen} /&gt;
  &lt;Stack.Screen name="Profile" component={ProfileScreen} /&gt;
&lt;/Stack.Navigator&gt;
D
const Stack = createNativeStackNavigator();

&lt;Stack.Navigator&gt;
  &lt;Screen name="Home" component={HomeScreen} /&gt;
  &lt;Screen name="Profile" component={ProfileScreen} /&gt;
&lt;/Stack.Navigator&gt;
Attempts:
2 left
💡 Hint
Remember the correct import and component names for native stack navigator.
navigation
advanced
2:00remaining
What is the effect of navigation.pop() in a Stack Navigator?
In a Stack Navigator, what happens when you call navigation.pop() from the Profile screen?
AIt resets the entire stack to the initial screen.
BIt removes the Profile screen from the stack and shows the previous screen.
CIt pushes a new instance of the Profile screen on top of the stack.
DIt does nothing if there is only one screen in the stack.
Attempts:
2 left
💡 Hint
Think about how pop works in a stack data structure.
🔧 Debug
expert
3:00remaining
Why does navigation.navigate('Profile') not work as expected?
You have a Stack Navigator with screens Home and Profile. From Home, calling navigation.navigate('Profile') does not navigate to Profile. What is the most likely cause?
React Native
const Stack = createNativeStackNavigator();

function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        {/* Profile screen is missing here */}
      </Stack.Navigator>
    </NavigationContainer>
  );
}
AThe NavigationContainer is missing, so navigation does not work.
Bnavigation.navigate requires a second parameter with screen props to work.
CYou must use navigation.push instead of navigate to go to Profile.
DProfile screen is not registered in the Stack Navigator, so navigation.navigate('Profile') fails.
Attempts:
2 left
💡 Hint
Check if the screen name exists in the navigator.