Я использую это текстовое поле:
<TextField
variant="outlined"
margin="normal"
id="freeSeats"
name="freeSeats"
helperText={touched.freeSeats ? errors.freeSeats : ''}
error={touched.freeSeats && Boolean(errors.freeSeats)}
label="Free Seats"
value={freeSeats}
onChange={change.bind(null, 'freeSeats')}
/>
с этой проверкой:
export const schema = Yup.object({
freeSeats: Yup.number()
.required('This Field is Required')
.typeError('A Number is Required'),
});
Работает хорошо и выдает ошибку при вводе алфавитов. Однако, когда я добавляю
type="number"
внутри текстового поля, появляются стрелки для увеличения / уменьшения числового значения, но проверка больше не работает. Так что даже если я напишу алфавит, это не даст мне ошибки. и если я переместлюсь в другое текстовое поле после ввода алфавитов, ввод просто перекрывается с меткой, как будто вообще не было ввода.
Есть ли способ сохранить стрелки типа номера пользовательского интерфейса материала вместе с проверкой?
https://codesandbox.io/s/tender-wind-zwh6i?file= / src / App.tsx