<TextField type="number" min="0" max="10" step="1" />
должен компилироваться с помощью Typescript
Получите следующую ошибку Typescript для min, аналогичную для max и step: [ts] Property 'min' does not exist on type 'IntrinsicAttributes & TextFieldProps & { children?: ReactNode; }'.
| Технология | Версия |
| -------------- | --------- |
| Материал-UI | 1.0.0-beta.21 |
| React | 16.0.0 |
| Машинопись | 2.6.1 |
Это работает?
<TextField type="number" inputProps={{ min: "0", max: "10", step: "1" }} />
Да, это работает. inputProps
принимает объект, в котором есть что угодно, поэтому я фактически отказываюсь от системы типов, делая это таким образом.
Да, это работает.
inputProps
принимает объект, в котором есть что угодно, поэтому я фактически отказываюсь от системы типов, делая это таким образом.
Хорошая мысль, я открыл # 9321, чтобы исправить ввод inputProps
.
inputProps
предназначен для того, чтобы _все, что происходит_ на InputComponent
. Это обеспечивает открытую интеграцию с внешними компонентами, для которых, к сожалению, мы можем не знать или не иметь типов.
Пример:
import * as MaskedInput from 'react-text-mask'
<TextField
InputProps={{
inputComponent: MaskedInput,
}}
inputProps={{
guide: false,
mask,
placeholderChar: '\u2000',
}}
type="tel"
value={value}
/>
Таким образом, альтернативой избеганию строго типизированного inputProps
в том же сценарии (спасибо @pelotom) является
import { InputProps as MuiInputProps } from 'material-ui/Input'
<TextField
InputProps={{
inputComponent: (inputProps: MuiInputProps) => (
<MaskedInput {...inputProps} guide={false} mask={mask} placeholderChar="\u2000" />
),
}}
type="tel"
value={value}
/>
@pelotom подает новое предложение / проблему для повторного
@rosskevin
MaskedInput не определен,
маска не определена
:(
Это похоже на слишком сложный обходной путь
Было бы лучше определить их на уровне TextField, чтобы проверка могла выполняться без кучи повторяющейся повсюду логики. Мне бы очень не хотелось расширять TextField каждый раз, когда я хочу использовать его для числового поля с требованиями min / max / step.
Самый полезный комментарий
Это работает?