axios es una librería basada en promesas que facilita la realización de solicitudes HTTP desde aplicaciones JavaScript, incluyendo proyectos en React Native.
Es una alternativa más robusta y sencilla al uso de fetch, permitiendo un mejor manejo de errores, tiempo de espera, cabeceras y más.
axiosEl método axios se utiliza para hacer solicitudes HTTP y obtener datos de una API.
Al igual que fetch, axios también devuelve una promesa.
import React, { useEffect, useState } from 'react';
import { View, Text, FlatList, StyleSheet, ActivityIndicator } from 'react-native';
import axios from 'axios';
const ApiExample = () => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const fetchData = async () => {
try {
const response = await axios.get('https://devsapihub.com/api-users');
setData(response.data);
} catch (err) {
setError(err.message);
} finally {
setLoading(false);
}
};
useEffect(() => {
fetchData();
}, []);
if (loading) {
return <View style={styles.centered}><ActivityIndicator size="large" color="#0000ff" /></View>;
}
if (error) {
return <View style={styles.centered}><Text style={styles.error}>Error: {error}</Text></View>;
}
return (
<FlatList
data={data}
keyExtractor={(item) => item.id.toString()}
renderItem={({ item }) => (
<View style={styles.userItem}>
<Text style={styles.userName}>{item.name}</Text>
<Text style={styles.userEmail}>{item.email}</Text>
</View>
)}
/>
);
};
const styles = StyleSheet.create({
centered: { flex: 1, justifyContent: 'center', alignItems: 'center' },
error: { color: 'red', fontSize: 18 },
userItem: { padding: 15, borderBottomWidth: 1, borderBottomColor: '#eee' },
userName: { fontSize: 18, fontWeight: 'bold' },
userEmail: { fontSize: 14, color: '#666' },
});
export default ApiExample; Importación de módulos: Incluye axios, componentes de React Native y hooks como useState y useEffect.
Estados (useState):
data: almacena los datos obtenidos.loading: controla el estado de carga.error: gestiona errores durante la petición.Llamada a la API (axios.get):
https://devsapihub.com/api-users.Interfaz de Usuario:
ActivityIndicator) mientras se cargan los datos.FlatList.El uso de axios en React Native te permite consumir APIs de una manera más simple y con menos código que fetch. Su sintaxis más directa y su manejo automático de JSON lo convierten en una opción muy popular. Recuerda siempre manejar los estados de carga y errores para ofrecer una mejor experiencia al usuario.