Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
64 of 196 menu
◀ ▶

Компонент RefreshControl

Компонент RefreshControl вешают на прокручиваемый список через параметр refreshControl у ScrollView или FlatList. Пользователь тянет список вниз, пока идет загрузка, виден индикатор. По окончании загрузки сбрасывают флаг refreshing.

Синтаксис

<ScrollView refreshControl={ <RefreshControl refreshing={refreshing} onRefresh={onRefresh} /> } />

Параметры

Параметр Описание
refreshing При true показывается индикатор обновления и удерживается жест.
onRefresh Вызов при жесте вниз. Здесь запускают загрузку данных и меняют refreshing.

Пример

Давайте обновим содержимое ScrollView по жесту:

import { useState } from 'react'; import { ScrollView, Text, RefreshControl } from 'react-native'; export default function App() { const [refreshing, setRefreshing] = useState(false); const [label, setLabel] = useState('abcde'); const onRefresh = () => { setRefreshing(true); setLabel('12345'); setRefreshing(false); }; return ( <ScrollView refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />} > <Text>{label}</Text> </ScrollView> ); }

На экране после потягивания вниз текст сменится на '12345'.

Пример

Давайте подключим обновление к FlatList:

import { useState } from 'react'; import { FlatList, Text, RefreshControl } from 'react-native'; export default function App() { const [refreshing, setRefreshing] = useState(false); const [data, setData] = useState(['abcde', '12345']); const onRefresh = () => { setRefreshing(true); setData(['12345', 'abcde']); setRefreshing(false); }; return ( <FlatList data={data} keyExtractor={(item, index) => String(index)} renderItem={({ item }) => <Text>{item}</Text>} refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />} /> ); }

На экране после жеста вниз порядок строк в списке поменяется местами.

Смотрите также

  • компонент FlatList,
    который принимает refreshControl
  • компонент ScrollView,
    который прокручивает дочерние элементы
  • компонент ActivityIndicator,
    который рисует индикатор загрузки
  • компонент SectionList,
    который тоже поддерживает refreshControl
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить