Bird
Raised Fist0
React Nativemobile~20 mins

Fetch API for POST requests in React Native - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Fetch POST Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What happens when this React Native fetch POST request runs?
Consider this React Native code snippet that sends a POST request. What will be the value of response.status if the server accepts the request successfully?
React Native
fetch('https://example.com/api/data', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'Alice' })
})
.then(response => console.log(response.status))
.catch(error => console.error(error));
A200
B404
C500
D201
Attempts:
2 left
💡 Hint
A successful POST request usually returns a status code in the 200 range.
📝 Syntax
intermediate
1:30remaining
Which option correctly formats the fetch POST request body?
You want to send JSON data in a POST request using fetch in React Native. Which option correctly sets the body property?
Abody: JSON.stringify({ username: 'bob' })
Bbody: { username: 'bob' }
Cbody: JSON.parse('{"username":"bob"}')
Dbody: 'username=bob'
Attempts:
2 left
💡 Hint
The body must be a string when sending JSON data.
❓ lifecycle
advanced
2:30remaining
What is the correct way to handle fetch POST request errors in React Native?
You want to catch network or server errors when sending a POST request with fetch. Which code snippet correctly handles errors?
React Native
fetch('https://api.example.com/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ user: 'test' })
})
.then(response => {
  if (!response.ok) throw new Error('Server error');
  return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error.message));
AIt catches both network errors and server response errors correctly.
BIt only catches network errors, not server errors.
CIt does not catch any errors because fetch never throws.
DIt catches errors but does not parse JSON correctly.
Attempts:
2 left
💡 Hint
Check how response.ok is used to detect server errors.
❓ navigation
advanced
2:00remaining
After a successful POST request, how to navigate to another screen in React Native?
You send a POST request to login a user. After success, you want to navigate to the Home screen. Which code snippet correctly does this using React Navigation?
React Native
fetch('https://api.example.com/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ username: 'user', password: 'pass' })
})
.then(response => response.json())
.then(data => {
  if (data.success) {
    // Navigate to Home
  }
})
.catch(error => console.error(error));
Anavigate('Home');
Bnavigation.navigate('Home');
CNavigation.push('Home');
Dthis.props.navigation.navigate('Home');
Attempts:
2 left
💡 Hint
In functional components, navigation is usually passed as a prop.
🧠 Conceptual
expert
2:30remaining
Why must you include 'Content-Type': 'application/json' header in a fetch POST request?
You send JSON data in a POST request but forget to set the 'Content-Type' header. What is the likely effect?
AThe JSON data will be automatically converted to form data.
BThe fetch request will fail with a syntax error.
CThe server may not parse the JSON body correctly and reject the request.
DThe server will accept the request but ignore the body.
Attempts:
2 left
💡 Hint
The Content-Type header tells the server how to read the request body.

Practice

(1/5)
1. What is the main purpose of using a POST request with the Fetch API in React Native?
easy
A. To delete data from the app
B. To retrieve data from a server
C. To send data from the app to a server
D. To update the app's local state only

Solution

  1. Step 1: Understand POST request purpose

    POST requests are used to send data to a server, unlike GET which retrieves data.
  2. Step 2: Match Fetch API usage

    Using Fetch with method 'POST' means sending data from the app to the server.
  3. Final Answer:

    To send data from the app to a server -> Option C
  4. Quick Check:

    POST request = send data [OK]
Hint: POST means sending data to server, not just getting it [OK]
Common Mistakes:
  • Confusing POST with GET method
  • Thinking POST only updates local state
  • Assuming POST deletes data
2. Which of the following is the correct way to specify a POST request using Fetch API in React Native?
easy
A. fetch(url, { method: 'POST' })
B. fetch(url, { method: 'GET' })
C. fetch(url, { method: 'PUT' })
D. fetch(url, { method: 'DELETE' })

Solution

  1. Step 1: Identify HTTP method for POST

    The method property in Fetch options must be 'POST' to send data.
  2. Step 2: Check options object

    Only fetch(url, { method: 'POST' }) uses method: 'POST' correctly.
  3. Final Answer:

    fetch(url, { method: 'POST' }) -> Option A
  4. Quick Check:

    Fetch POST syntax = method: 'POST' [OK]
Hint: Use method: 'POST' exactly to send data [OK]
Common Mistakes:
  • Using method: 'GET' for sending data
  • Confusing PUT or DELETE with POST
  • Omitting the method property
3. What will be the output of this code snippet in React Native?
fetch('https://example.com/api', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'John' })
})
.then(response => response.json())
.then(data => console.log(data.message))
.catch(error => console.error(error));
Assuming the server responds with {"message": "Success"}.
medium
A. Throws a syntax error
B. Logs undefined to the console
C. Logs the entire response object
D. Logs 'Success' to the console

Solution

  1. Step 1: Understand fetch and JSON parsing

    The fetch call sends a POST request with JSON body and parses the JSON response.
  2. Step 2: Check console.log output

    Since server returns {"message": "Success"}, data.message is 'Success', so it logs 'Success'.
  3. Final Answer:

    Logs 'Success' to the console -> Option D
  4. Quick Check:

    response.json() = parsed JSON, data.message = 'Success' [OK]
Hint: response.json() parses JSON, then access properties [OK]
Common Mistakes:
  • Not parsing response as JSON
  • Logging response instead of data.message
  • Syntax errors in JSON.stringify
4. Identify the error in this React Native POST request code:
fetch('https://api.example.com/data', {
  method: 'POST',
  body: { name: 'Alice' }
})
medium
A. Missing headers for content type
B. body should be a JSON string, not an object
C. method should be 'GET' instead of 'POST'
D. URL is invalid

Solution

  1. Step 1: Check body format in fetch POST

    The body must be a string, usually JSON stringified, not a plain object.
  2. Step 2: Identify missing JSON.stringify

    Here, body is an object { name: 'Alice' } which causes an error; it should be JSON.stringify({ name: 'Alice' }).
  3. Final Answer:

    body should be a JSON string, not an object -> Option B
  4. Quick Check:

    body = JSON.stringify(object) [OK]
Hint: Always JSON.stringify body for POST requests [OK]
Common Mistakes:
  • Passing object directly as body
  • Forgetting Content-Type header
  • Using wrong HTTP method
5. You want to send user data with a POST request and handle errors gracefully in React Native. Which code snippet correctly implements this with async/await and error handling? A)
async function sendData() {
  try {
    const response = await fetch('https://api.example.com/user', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ username: 'user1' })
    });
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Error:', error);
  }
}
B)
async function sendData() {
  const response = fetch('https://api.example.com/user', {
    method: 'POST',
    body: { username: 'user1' }
  });
  const data = response.json();
  console.log(data);
}
C)
function sendData() {
  fetch('https://api.example.com/user', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ username: 'user1' })
  })
  .then(response => response.text())
  .then(text => console.log(text))
  .catch(error => console.error(error));
}
D)
async function sendData() {
  try {
    const response = await fetch('https://api.example.com/user');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
hard
A. Correct async/await POST with JSON body and error handling
B. Missing await and body is not stringified
C. Uses then but parses response as text, not JSON
D. No POST method or body specified

Solution

  1. Step 1: Check async/await usage and POST setup

    Correct async/await POST with JSON body and error handling uses async/await correctly, sets method to 'POST', includes headers, and stringifies body.
  2. Step 2: Verify error handling and response parsing

    Correct async/await POST with JSON body and error handling has try/catch for errors and parses response as JSON, then logs data.
  3. Final Answer:

    Correct async/await POST with JSON body and error handling -> Option A
  4. Quick Check:

    Async POST with try/catch = Correct async/await POST with JSON body and error handling [OK]
Hint: Use async/await with try/catch and JSON.stringify body [OK]
Common Mistakes:
  • Not awaiting fetch or response.json()
  • Not stringifying body object
  • Missing headers for JSON content
  • Not handling errors
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