#reactjs #formik #yup
Вопрос:
Я работаю над проектом, где в админ-панели врач может установить комиссию за свое лечение. Но он может быть длиной всего в 2 цифры. Но комиссия не может быть равна 0. Это может быть что угодно 0,01 или 0,001. Я создал форму, используя formik и да. Но не знаю, как настроить поле ввода для этой работы. Я пробовал и искал, но не нашел никакого решения.
Да, проверка
commission: Yup.string()
.required()
.matches(/^[0-9] $/, "Commission should contain only digits")
// .min(1, 'Must be exactly 1 digits')
.max(2, "Commission should not be more than 2 digits"),
код поля ввода
<div className="form-group">
<label>
Commission(%) <span className="text-danger">*</span>{" "}
</label>
<input
type="text"
className="form-control"
name="commission"
value={formik.values.commission}
onChange={formik.handleChange}
onBlur={formik.handleBlur}
min="0.01"
></input>
{formik.touched.commission amp;amp;
formik.errors.commission ? (
<div className="err">{formik.errors.commission}</div>
) : null}
</div>```
Ответ №1:
Обновите свою проверку yup до:
commission: Yup.number()
.required()
.moreThan(0, 'commision should not be zero or less than zero')
.lessThan(100, "Commission should not be more than 2 digits"),
А также измените тип поля ввода:
<input
type='number'
...
/>
Комментарии:
1. получение — Ошибка типа: да__WEBPACK_ИМПОРТИРОВАННЫЙ_МОДУЛЬ_5__.строка(…).требуется(…).Больше не является функцией
2. Вместо Yup.string()…. напишите Да.номер()…
3. Спасибо, что я изменил, теперь он не показывает ошибку. Но это только значит, что я не могу заполнить отрицательное значение. Но я все еще могу сохранить форму, имеющую значение 0
4. укажите некоторые значения, которые вы хотите сохранить