<TextField type="number" min="0" max="10" step="1" />
deve compilar com Typescript
Recebe o seguinte erro de texto de tipo para min, semelhante para max e etapa: [ts] Property 'min' does not exist on type 'IntrinsicAttributes & TextFieldProps & { children?: ReactNode; }'.
| Tech | Versão |
| -------------- | --------- |
| Material-UI | 1.0.0-beta.21 |
| React | 16.0.0 |
| Typecript | 2.6.1 |
Isto funciona?
<TextField type="number" inputProps={{ min: "0", max: "10", step: "1" }} />
Sim, isso funciona. inputProps
aceita um objeto com qualquer coisa nele, portanto, estou efetivamente optando por sair do sistema de tipos ao fazê-lo desta forma.
Sim, isso funciona.
inputProps
aceita um objeto com qualquer coisa nele, portanto, estou efetivamente optando por sair do sistema de tipos ao fazê-lo desta forma.
Bom ponto, abri # 9321 para corrigir a digitação de inputProps
.
inputProps
se destina a permitir _qualquer coisa vai_ em um InputComponent
. Isso permite a integração aberta com componentes externos, para os quais, infelizmente, podemos não saber ou ter tipos.
Exemplo:
import * as MaskedInput from 'react-text-mask'
<TextField
InputProps={{
inputComponent: MaskedInput,
}}
inputProps={{
guide: false,
mask,
placeholderChar: '\u2000',
}}
type="tel"
value={value}
/>
Portanto, a alternativa para evitar inputProps
fortemente tipados no mesmo cenário (obrigado @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 está apresentando uma nova proposta / problema para revisitar esta API.
@rosskevin
MaskedInput não está definido,
máscara não está definida
:(
Esta parece ser uma solução alternativa muito complicada
Seria melhor defini-los no nível TextField, para que a validação possa ser realizada sem um monte de lógica repetida em todos os lugares. Eu odiaria ter que estender TextField toda vez que quiser usá-lo para um campo de número com requisitos mín. / Máx. / Etapas.
Comentários muito úteis
Isto funciona?