El componente RefreshControl en React Native se utiliza dentro de componentes como ScrollView o FlatList para agregar la funcionalidad de “deslizar para actualizar”.
Es útil cuando quieres permitir que los usuarios actualicen el contenido de la lista o página al hacer un gesto de arrastre.
import React, { useState } from 'react';
import { ScrollView, Text, RefreshControl, StyleSheet, View } from 'react-native';
const App = () => {
const [refreshing, setRefreshing] = useState(false);
const onRefresh = () => {
setRefreshing(true);
// Simula una llamada de actualización, y luego detiene la animación
setTimeout(() => {
setRefreshing(false);
}, 2000);
};
return (
<ScrollView
style={styles.container}
refreshControl={
<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
}>
<View style={styles.content}>
<Text>Desliza hacia abajo para actualizar.</Text>
</View>
</ScrollView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: 50,
},
content: {
justifyContent: 'center',
alignItems: 'center',
height: 1000,
},
});
export default App; refreshing: (booleano) Indica si el componente está en estado de “actualización” o no. Cuando es true, se muestra el indicador de carga.onRefresh: (función) Función que se ejecuta cuando el usuario realiza el gesto de “deslizar para actualizar”. Es aquí donde puedes colocar la lógica para obtener datos nuevos o realizar una acción de actualización.tintColor: (color) Color del indicador de carga (solo iOS).title: (string) Texto que se muestra en el indicador de carga (solo iOS).titleColor: (color) Color del texto del indicador de carga (solo iOS).Si no deseas actualizar nada y solo quieres mostrar el gesto, puedes hacer una implementación muy simple de RefreshControl.
import React from 'react';
import { ScrollView, Text, RefreshControl, StyleSheet } from 'react-native';
const App = () => {
return (
<ScrollView
style={styles.container}
refreshControl={<RefreshControl refreshing={false} onRefresh={() => {}} />}>
<Text>Desliza hacia abajo para actualizar.</Text>
</ScrollView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: 50,
},
});
export default App; Puedes personalizar el comportamiento y la apariencia de RefreshControl agregando propiedades como tintColor, title, y titleColor.
import React, { useState } from 'react';
import { ScrollView, Text, RefreshControl, StyleSheet } from 'react-native';
const App = () => {
const [refreshing, setRefreshing] = useState(false);
const onRefresh = () => {
setRefreshing(true);
setTimeout(() => {
setRefreshing(false);
}, 2000);
};
return (
<ScrollView
style={styles.container}
refreshControl={
<RefreshControl
refreshing={refreshing}
onRefresh={onRefresh}
tintColor="blue"
title="Actualizando..."
titleColor="gray"
/>
}>
<Text>Desliza hacia abajo para actualizar el contenido.</Text>
</ScrollView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: 50,
},
});
export default App; El componente RefreshControl es esencial para aplicaciones que requieren actualizar su contenido de manera eficiente al realizar el gesto de “deslizar para actualizar”. Su integración con ScrollView o FlatList hace que sea fácil implementar la funcionalidad de actualización sin tener que crear una solución personalizada desde cero.