Как преобразовать входное значение в плавающее поле только по размытию в поле из реагирующей-финальной формы? - PullRequest
0 голосов
/ 03 октября 2018

Если я использую 'parse', то пользователь не сможет ввести десятичный разделитель.

Поскольку "9." анализируется как 9 и мгновенно заменяетвходной текст.

Песочница: https://codesandbox.io/s/xmj92nnpo

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Я получаю свой собственный компонент StatefulInput с флагом «edit» во внутреннем состоянии.И я вызываю обработчик событий onChange только при размытии.

https://codesandbox.io/s/2zpn29zzjj

0 голосов
/ 05 октября 2018

Да.Это распространенная проблема.Если вы хотите разрешить десятичные точки, вы должны сохранить значение в виде строки, а затем преобразовать его в число во время отправки.Вы по-прежнему можете использовать parse для удаления любых недопустимых символов (или type="number" на вашем <input>), но вы не можете разобрать его в число при каждом нажатии клавиши, иначе вы потеряете свои десятичные точки.

...