ProgressBar · ProgressRing
Управляемые полосы и кольца прогресса с неопределённым состоянием.
ВебReact NativeПрогресс
Попробуйте
Подготовка примера…
Кратчайшее использование
<ProgressBar value={progress} max={100} />
<ProgressRing value={progress} size={96}>{progress}%</ProgressRing>
<ProgressBar value={null} /> {/* indeterminate */}Что он берёт на себя
- Значения ограничиваются
0…max, аnullпоказывает неопределённую волну или вращающуюся дугу. - Новое значение посреди движения продолжается со своей скоростью.
- Одна непрерывная линия или дуга, никаких прыгающих сегментов.
- Пружина с
durationзаканчивается ровно в это время.
Для чего подходит
- Загрузка файла.
- Использованное место из квоты.
- Прогресс оформления заказа.
Props
ProgressBar
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
value | number | null | Прогресс от 0 до max; null — неопределённое состояние. | |
max | number | 100 | Значение, означающее завершение. |
color | string | 'currentColor' | Цвет заливки. |
trackColor | string | '#e7ece9' | Цвет дорожки. |
thickness | number | 8 | Толщина линии в пикселях. |
direction | 'ltr' | 'rtl' | 'ltr' | Заполнение слева (ltr) или справа (rtl). |
transition | Transition | spring | Кривая timing { duration, easing } или пружина { tempo: 'spring', spring }. При прерывании пружины сохраняют инерцию. |
ProgressRing
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
value | number | null | Прогресс от 0 до max; null — неопределённое состояние. | |
max | number | 100 | Значение, означающее завершение. |
size | number | 96 | Диаметр в пикселях. |
thickness | number | 8 | Толщина кольца в пикселях. |
color | string | 'currentColor' | Цвет дуги. |
trackColor | string | '#e7ece9' | Цвет дорожки. |
children | ReactNode | Подпись в центре. | |
transition | Transition | spring | Кривая timing { duration, easing } или пружина { tempo: 'spring', spring }. При прерывании пружины сохраняют инерцию. |
Остальные props передаются отрендеренному элементу, поэтому className, style и обработчики событий работают как обычно.
Веб и React Native
ProgressRing принимает дочерние элементы для подписи в центре; ProgressBar принимает direction, чтобы заполняться справа.
Те же компоненты и props работают в React Native.