Bird
Raised Fist0
React Nativemobile~20 mins

Axios library in React Native - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Axios Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What is the output when fetching data with Axios in React Native?

Consider this React Native component using Axios to fetch user data on button press. What will be displayed after pressing the button?

React Native
import React, { useState } from 'react';
import { View, Text, Button } from 'react-native';
import axios from 'axios';

export default function UserFetcher() {
  const [user, setUser] = useState(null);
  const fetchUser = () => {
    axios.get('https://jsonplaceholder.typicode.com/users/1')
      .then(response => setUser(response.data))
      .catch(() => setUser({ name: 'Error' }));
  };
  return (
    <View>
      <Button title="Fetch User" onPress={fetchUser} />
      <Text>{user ? user.name : 'No user loaded'}</Text>
    </View>
  );
}
AInitially blank, then shows 'Error' after button press
BShows 'No user loaded' always, button press does nothing
CInitially shows 'No user loaded', then after button press shows 'Leanne Graham'
DShows 'No user loaded' initially, then blank after button press
Attempts:
2 left
💡 Hint

Think about what the Axios call returns and how state updates the displayed text.

❓ lifecycle
intermediate
2:00remaining
When does Axios fetch data in this React Native component?

Given this component, when is the Axios GET request triggered?

React Native
import React, { useEffect, useState } from 'react';
import { View, Text } from 'react-native';
import axios from 'axios';

export default function DataLoader() {
  const [data, setData] = useState(null);
  useEffect(() => {
    axios.get('https://jsonplaceholder.typicode.com/posts/1')
      .then(response => setData(response.data))
      .catch(() => setData({ title: 'Error' }));
  }, []);
  return <View><Text>{data ? data.title : 'Loading...'}</Text></View>;
}
AWhen the component unmounts
BOnly once when the component first mounts
CEvery time the component re-renders
DWhen the user presses a button
Attempts:
2 left
💡 Hint

Look at the dependency array in useEffect.

📝 Syntax
advanced
2:00remaining
Which Axios call correctly sends JSON data in a POST request?

Choose the correct Axios POST request syntax to send JSON data { name: 'John' } to the endpoint.

Aaxios.post('https://api.example.com/users', { name: 'John' })
Baxios.post('https://api.example.com/users', JSON.stringify({ name: 'John' }))
Caxios.post('https://api.example.com/users', { name: 'John' }, { headers: { 'Content-Type': 'text/plain' } })
Daxios.post('https://api.example.com/users', null, { data: { name: 'John' } })
Attempts:
2 left
💡 Hint

Axios automatically sets the correct headers and stringifies the data object.

🔧 Debug
advanced
2:00remaining
Why does this Axios request cause a runtime error?

Examine this code snippet. What causes the runtime error?

React Native
import axios from 'axios';

async function fetchData() {
  try {
    const response = await axios.get('https://api.example.com/data');
    console.log(response.data);
  } catch (error) {
    console.log(error.message);
  }
}

fetchData();
AThe function fetchData is not awaited or handled properly
BMissing import of React in the file
Caxios.get URL is missing protocol
DUsing await outside an async function
Attempts:
2 left
💡 Hint

Look at how fetchData is called.

🧠 Conceptual
expert
2:00remaining
What is the effect of setting Axios interceptors in React Native?

Which statement best describes the purpose of Axios interceptors in a React Native app?

AThey convert all Axios calls to fetch API calls internally
BThey automatically retry failed requests without any code
CThey cache all responses locally to improve performance
DThey allow modifying requests or responses globally before they are handled by then or catch
Attempts:
2 left
💡 Hint

Think about how interceptors can change requests or responses.

Practice

(1/5)
1. What is the main purpose of using the Axios library in a React Native app?
easy
A. To make HTTP requests to fetch or send data
B. To style components with CSS
C. To manage app navigation between screens
D. To store data locally on the device

Solution

  1. Step 1: Understand Axios functionality

    Axios is a library designed to simplify making HTTP requests like GET and POST.
  2. Step 2: Identify Axios use in React Native

    It helps fetch data from servers or send data to them, which is essential for dynamic apps.
  3. Final Answer:

    To make HTTP requests to fetch or send data -> Option A
  4. Quick Check:

    Axios = HTTP requests [OK]
Hint: Axios is for internet requests, not styling or navigation [OK]
Common Mistakes:
  • Confusing Axios with styling libraries
  • Thinking Axios manages navigation
  • Assuming Axios stores data locally
2. Which of the following is the correct syntax to make a GET request using Axios in React Native?
easy
A. axios.fetch('https://api.example.com/data')
B. axios.get('https://api.example.com/data')
C. axios.post('https://api.example.com/data')
D. axios.request('https://api.example.com/data')

Solution

  1. Step 1: Recall Axios GET method

    The correct method to fetch data is axios.get(url).
  2. Step 2: Check other options

    axios.fetch is not a valid Axios method, axios.post sends data, and axios.request is more generic but requires config.
  3. Final Answer:

    axios.get('https://api.example.com/data') -> Option B
  4. Quick Check:

    GET request = axios.get() [OK]
Hint: Use axios.get() for fetching data [OK]
Common Mistakes:
  • Using axios.fetch which does not exist
  • Confusing get with post method
  • Using axios.request without config object
3. What will be logged to the console after this Axios GET request succeeds?
axios.get('https://api.example.com/user')
  .then(response => console.log(response.data.name))
  .catch(error => console.log('Error'));
Assuming the server responds with { "name": "Alice" }.
medium
A. response
B. Error
C. Alice
D. undefined

Solution

  1. Step 1: Understand Axios response structure

    Axios returns a response object where the actual data is inside response.data.
  2. Step 2: Access the name property

    The code logs response.data.name, which is "Alice" from the server response.
  3. Final Answer:

    Alice -> Option C
  4. Quick Check:

    response.data.name = Alice [OK]
Hint: Access data via response.data in Axios [OK]
Common Mistakes:
  • Logging response instead of response.data
  • Expecting data directly without .data
  • Not handling promise with then/catch
4. Identify the error in this Axios POST request code snippet:
axios.post('https://api.example.com/login',
  { username: 'user1', password: 'pass123' }
).then(response => {
  console.log('Login successful');
}).catch(error => {
  console.log('Login failed');
});
medium
A. No error, code is correct
B. Missing await keyword for async call
C. Incorrect URL format
D. POST data should be a string, not an object

Solution

  1. Step 1: Review Axios POST syntax

    Axios.post takes URL and data object as parameters, which is correct here.
  2. Step 2: Check for syntax or usage errors

    The code uses promise chaining with then/catch correctly; await is optional.
  3. Final Answer:

    No error, code is correct -> Option A
  4. Quick Check:

    Axios.post with object data is valid [OK]
Hint: Axios.post accepts object data without await [OK]
Common Mistakes:
  • Thinking await is mandatory with then/catch
  • Assuming data must be JSON stringified manually
  • Confusing URL format with error
5. You want to fetch user data and show a loading message while waiting. Which code snippet correctly uses Axios with React Native hooks to handle loading and errors?
hard
A. const [loading, setLoading] = useState(false); useEffect(() => { axios.get('/user') .then(() => setLoading(false)) .catch(() => setLoading(false)); }, []);
B. const [loading, setLoading] = useState(false); useEffect(() => { axios.get('/user') .then(() => setLoading(true)) .catch(() => setLoading(false)); }, []);
C. const [loading, setLoading] = useState(true); useEffect(() => { setLoading(false); axios.get('/user') .then(() => setLoading(true)) .catch(() => setLoading(false)); }, []);
D. const [loading, setLoading] = useState(false); useEffect(() => { setLoading(true); axios.get('/user') .then(() => setLoading(false)) .catch(() => setLoading(false)); }, []);

Solution

  1. Step 1: Initialize loading state correctly

    Loading should start as false, then set to true when request starts.
  2. Step 2: Set loading true before Axios call and false after response or error

    This ensures UI shows loading while waiting and hides it after.
  3. Final Answer:

    Initialize loading false, set true before request, false after -> Option D
  4. Quick Check:

    Loading true during request = const [loading, setLoading] = useState(false); useEffect(() => { setLoading(true); axios.get('/user') .then(() => setLoading(false)) .catch(() => setLoading(false)); }, []); [OK]
Hint: Set loading true before request, false after response [OK]
Common Mistakes:
  • Starting loading as true but not setting it properly
  • Setting loading true after request finishes
  • Not handling loading state at all
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard