React Aria предоставляет удобные инструменты для создания доступных интерфейсных компонентов, включая числовые поля, слайдеры и селекторы диапазонов, где управление шагом и границами значений играет ключевую роль. Эти параметры позволяют контролировать, какие значения может принимать компонент, а также обеспечивают удобство и предсказуемость взаимодействия.
min и
maxДля большинства интерактивных элементов в React Aria задаются минимальные и максимальные значения:
import {useNumberField} from '@react-aria/numberfield';
let {labelProps, inputProps} = useNumberField({
label: 'Возраст',
minValue: 18,
maxValue: 100,
value: age,
onChange: setAge
});
minValue — минимальное значение,
которое может быть установлено пользователем.maxValue — максимальное значение.React Aria обеспечивает корректное поведение с клавиатуры, кнопок и скринридеров, предотвращая выход значения за границы.
step)Параметр step определяет дискретность
изменения значения:
useNumberField({
label: 'Количество',
minValue: 0,
maxValue: 10,
step: 2,
value: quantity,
onChange: setQuantity
});
step: 2 каждое нажатие кнопки увеличения или
уменьшения изменяет значение на 2 единицы.React Aria поддерживает дробные шаги:
useNumberField({
label: 'Цена',
minValue: 0,
maxValue: 10,
step: 0.5,
value: price,
onChange: setPrice
});
Элементы с шагами и границами полностью интегрированы с клавиатурой:
step.step * 10, если настроено.Это позволяет создавать полностью доступные интерфейсы, где пользователи с разными методами ввода получают предсказуемый результат.
React Aria автоматически корректирует недопустимые значения:
maxValue, устанавливаются на
maxValue.minValue устанавливаются на
minValue.minValue, компонент корректирует значение к ближайшему
корректному шагу.useNumberField({
label: 'Вес',
minValue: 50,
maxValue: 150,
step: 5,
value: weight,
onChange: setWeight
});
Например, при weight = 52 и step = 5 React
Aria автоматически скорректирует значение на 50 или 55 в зависимости от
направления изменения.
Для компонентов слайдеров или диапазонов те же свойства применяются:
import {useSlider} from '@react-aria/slider';
let {trackProps, thumbProps} = useSlider({
minValue: 0,
maxValue: 100,
step: 10,
value: volume,
onChange: setVolume
});
React Aria позволяет изменять minValue,
maxValue и step во время работы
приложения:
setConfig({minValue: 10, maxValue: 50, step: 5});
minValue и
maxValue — это обеспечивает предсказуемость
компонента.Эти правила обеспечивают, что элементы с шагами и ограничениями будут доступными, предсказуемыми и удобными для любого пользователя.