Radio#
Радиокнопки позволяют пользователю выбрать один вариант из набора.
Radio API#
№ |
Свойство |
Описание |
Значение по умолчанию |
|---|---|---|---|
1 |
classes |
JSS-классы для стилизации |
- |
2 |
checked |
Показывает, выбран ли компонент (boolean) |
- |
3 |
disabled |
Элемент отключен (boolean) |
- |
4 |
inputProps |
Свойства элемента input |
- |
5 |
name |
Атрибут name элемента input (string) |
- |
6 |
value |
Значение поля input (string) |
- |
7 |
onChange |
Обработчик, вызываемый при изменении состояния |
- |
8 |
ref |
|
- |
RadioGroup API
№ |
Свойство |
Описание |
Значение по умолчанию |
|---|---|---|---|
1 |
classes |
JSS-классы для стилизации |
- |
2 |
label |
Подпись над полем ввода (ReactNode) |
- |
3 |
labelProps |
Свойства компонента InputLabel (InputLabelProps) |
- |
4 |
direction |
Направление расположения элементов "horizontal", "vertical" |
"horizontal" |
5 |
value |
Значение поля (string) |
- |
6 |
name |
Имя элемента (string) |
- |
7 |
onChange |
Обработчик изменения поля |
- |
8 |
helperText |
Подпись под полем ввода (ReactNode) |
- |
9 |
helperTextProps |
Свойства компонента InputHelperText (InputHelperTextProps) |
- |
10 |
disabled |
Поле отключено (boolean) |
- |
11 |
error |
Поле содержит ошибку (boolean) |
- |
12 |
ref |
|
- |
import { Radio } from '@v-uik/radio'
import { RadioGroup } from '@v-uik/radio-group'
Автономная радиокнопка и ее свойства#
Радиокнопка — это обертка вокруг <input type="radio">, которая обычно используется для создания группы радиокнопок,
списков с единичным выбором и тому подобного. Одновременно пользователь может выбрать лишь одну радиокнопку из предложенных.
Ниже представлены состояния радиокнопки: не выбрано, выбрано и неактивная.
<Radio value="normal" />
<Radio value="normal" checked />
<Radio value="active" disabled />
Группа радиокнопок#
Обертка RadioGroup упрощает работу с группой радиокнопок, а также реализует управление радиокнопками с клавиатуры.
import * as React from 'react'
import { RadioGroup } from '@v-uik/radio-group'
import { Radio } from '@v-uik/radio'
import { LabelControl } from '@v-uik/label-control'
export const Vertical = (): React.ReactElement => {
const [value, setValue] = React.useState('')
return (
<RadioGroup
label="Выберите способ оплаты"
value={value}
direction="vertical"
onChange={setValue}
>
<LabelControl value="debt" control={<Radio />} label="Дебетовая карта" />
<LabelControl
value="credit"
control={<Radio />}
label="Кредитная карта"
/>
<LabelControl value="cash" control={<Radio />} label="Наличные" />
</RadioGroup>
)
}
Горизонтальная группа#
import * as React from 'react'
import { RadioGroup } from '@v-uik/radio-group'
import { Radio } from '@v-uik/radio'
import { LabelControl } from '@v-uik/label-control'
export const Horizontal = (): React.ReactElement => {
const [value, setValue] = React.useState('debt')
return (
<RadioGroup
label="Выберите способ оплаты"
value={value}
direction="horizontal"
onChange={setValue}
>
<LabelControl value="debt" control={<Radio />} label="Дебетовая карта" />
<LabelControl
value="credit"
control={<Radio />}
label="Кредитная карта"
/>
<LabelControl value="cash" control={<Radio />} label="Наличные" />
</RadioGroup>
)
}
Группа радиокнопок с разным расположением#
import * as React from 'react'
import { RadioGroup } from '@v-uik/radio-group'
import { LabelControl } from '@v-uik/label-control'
import { Radio } from '@v-uik/radio'
export const DifferentPositionRadio = (): React.ReactElement => {
const [value, setValue] = React.useState('')
return (
<RadioGroup
label="Выберите способ оплаты"
value={value}
direction="horizontal"
onChange={setValue}
>
<LabelControl
labelPlacement="start"
value="start"
control={<Radio />}
label="В начале"
/>
<LabelControl
labelPlacement="top"
value="top"
control={<Radio />}
label="Сверху"
/>
<LabelControl
labelPlacement="bottom"
value="bottom"
control={<Radio />}
label="Снизу"
/>
<LabelControl
labelPlacement="end"
value="end"
control={<Radio />}
label="В конце"
/>
</RadioGroup>
)
}
Заблокированная радиокнопка#
import * as React from 'react'
import { RadioGroup } from '@v-uik/radio-group'
import { LabelControl } from '@v-uik/label-control'
import { Radio } from '@v-uik/radio'
export const DisabledRadio = (): React.ReactElement => {
const [value, setValue] = React.useState('block1')
return (
<RadioGroup
label="Заблокированная и доступная радиокнопка"
value={value}
direction="horizontal"
onChange={setValue}
>
<LabelControl
disabled
label="Заблокированный 1"
value="block1"
control={<Radio />}
/>
<LabelControl
disabled
label="Заблокированный 2"
value="block2"
control={<Radio />}
/>
<LabelControl
label="Доступный"
disabled={false}
value="enabled"
control={<Radio />}
/>
</RadioGroup>
)
}