Necesito validar previamente mis entradas de acuerdo con la configuración regional y el "tipo de formato" definido. Por ejemplo: en algunos casos, será posible ingresar solo valores enteros , en otros casos, puede ser float , pero con lugares decimales específicos, etc.
Que tengo por ahora:
type = 'text', comprobaciones personalizadas, problemas de formik. Input type='text' me permite realizar las comprobaciones que quiero en "onKeyPress" y otros eventos. Pero el problema es que formik vuelve a dibujar la entrada después de cada cambio y, en caso de ingresar el separador decimal, se borrará (solo porque después de setFieldValue 999 de formik. (o incluso 999.0) se convierte en 999). Como lo veo ahora, puedo agregar una gran cantidad de código feo dentro de Formik personalizado, pero siento que hay una mejor manera...
type='number', problemas de configuración regional. Permite que el navegador haga la mayor parte del trabajo usando type='number' : Esto funciona mucho mejor, todavía puedo usar los eventos que quiero, pero el problema es incluso usar mi configuración regional ( en-US ), no me permite ingresar "." como separador decimal, pero me permite usar "," solo.
También hay un atributo de patrón , pero no se puede usar con entradas de "número", por lo que tenemos los mismos problemas que en el primer caso.
En cuanto a la visualización, cambiar dinámicamente a "texto" y mostrar texto formateado con "Intl.NumberFormat" funciona bastante bien.
Tengo muchas ganas de "reinventar la rueda", pero ya debería haber una inventada...