The Fetch API helps your app get data from the internet. It lets you ask a website for information and use it inside your app.
Fetch API for GET requests in React Native
fetch(url)
.then(response => response.json())
.then(data => {
// use the data here
})
.catch(error => {
// handle errors here
});fetch(url) starts the request to get data from the web address.
response.json() converts the response into a usable JavaScript object.
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data));fetch('https://api.example.com/users') .then(response => response.json()) .then(users => { // show users in the app }) .catch(error => console.error('Error:', error));
This React Native app fetches a post from a public API and shows its title and body. It shows a loading spinner while waiting and an error message if something goes wrong.
import React, { useEffect, useState } from 'react'; import { View, Text, ActivityIndicator, StyleSheet } from 'react-native'; export default function App() { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetch('https://jsonplaceholder.typicode.com/posts/1') .then(response => response.json()) .then(json => { setData(json); setLoading(false); }) .catch(err => { setError(err.message); setLoading(false); }); }, []); if (loading) { return <View style={styles.container}><ActivityIndicator size="large" /></View>; } if (error) { return <View style={styles.container}><Text>Error: {error}</Text></View>; } return ( <View style={styles.container}> <Text style={styles.title}>{data.title}</Text> <Text>{data.body}</Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', padding: 20 }, title: { fontWeight: 'bold', fontSize: 18, marginBottom: 10 } });
Always handle errors with catch to avoid app crashes.
Use useEffect in React Native to fetch data when the component loads.
Show a loading indicator so users know data is coming.
The Fetch API gets data from the internet easily.
Use fetch(url).then(response => response.json()) to get JSON data.
Handle loading and errors for a smooth user experience.
Practice
What does the Fetch API do in React Native?
Choose the best description.
Solution
Step 1: Understand Fetch API purpose
The Fetch API is designed to make network requests to get or send data.Step 2: Match description to Fetch API
Only It retrieves data from a web server using HTTP requests. describes retrieving data from a web server, which is what Fetch does.Final Answer:
It retrieves data from a web server using HTTP requests. -> Option AQuick Check:
Fetch API = Data retrieval [OK]
- Confusing Fetch with styling or navigation libraries
- Thinking Fetch stores data locally
- Assuming Fetch only works with JSON
Which of the following is the correct syntax to fetch JSON data from https://api.example.com/data?
fetch(_____).then(response => response.json())Solution
Step 1: Identify correct string syntax in JavaScript
URLs must be passed as strings, enclosed in quotes.Step 2: Choose proper quotes for URL string
'https://api.example.com/data' uses single quotes correctly.Final Answer:
'https://api.example.com/data' -> Option DQuick Check:
URL as string = 'https://api.example.com/data' [OK]
- Not using quotes around the URL
- Using undefined variable url without declaration
- Using double quotes inside double quotes without escaping
What will be logged to the console after running this code?
fetch('https://api.example.com/user')
.then(response => response.json())
.then(data => console.log(data.name))
.catch(error => console.error(error));Assume the server returns { "name": "Alice" }.
Solution
Step 1: Understand fetch and JSON parsing
The fetch call gets the response, then response.json() parses it into an object.Step 2: Access the 'name' property from parsed data
The data object has a 'name' key with value "Alice", so console.log(data.name) prints "Alice".Final Answer:
Alice -> Option CQuick Check:
Parsed JSON name = Alice [OK]
- Logging before JSON parsing
- Trying to access data.name before fetch resolves
- Ignoring asynchronous nature of fetch
Identify the error in this fetch code snippet:
fetch('https://api.example.com/items')
.then(response => response.json)
.then(data => console.log(data))
.catch(error => console.error(error));Solution
Step 1: Check response.json usage
response.json is a function and must be called with parentheses to parse JSON.Step 2: Identify missing parentheses error
The code uses response.json without () which returns the function itself, not the parsed data.Final Answer:
Missing parentheses after response.json() call -> Option AQuick Check:
Call response.json() with () [OK]
- Forgetting parentheses on response.json
- Misplacing catch block
- Using wrong quotes for URL
You want to fetch user data and show a loading message while waiting. Which code snippet correctly handles loading state and errors?
const [loading, setLoading] = React.useState(true);
const [error, setError] = React.useState(null);
React.useEffect(() => {
fetch('https://api.example.com/user')
.then(res => res.json())
.then(data => {
// handle data
setLoading(false);
})
.catch(err => {
setError(err.message);
setLoading(false);
});
}, []);What is missing to properly show loading and error states?
Solution
Step 1: Understand state variables usage
loading and error states are set correctly during fetch lifecycle.Step 2: Identify missing UI rendering logic
Without UI code that checks loading and error states, user won't see messages.Final Answer:
Render UI that shows loading and error messages based on state -> Option BQuick Check:
Show loading/error UI based on state [OK]
- Not rendering loading or error messages
- Setting loading true too late
- Ignoring error handling in UI
Ready to prove it?
Pass the test and this pattern moves unknown
