Quiero guardar la entrada en tipo de número cada vez que se actualiza el valor. Sin embargo, con este enfoque, el valor está atascado en NaN o 0 en los escenarios a continuación.
escenario 1: cambiando 0 a 0.1 (atascado en 0 cuando '0.' se fue)
escenario 2: cambiar -15 a 1 (atascado en NaN cuando solo queda '-')
¿Cuál sería la mejor manera de manejar estos casos cuando 1) la entrada debe ser un elemento controlado y 2) almacenar el valor en formato de cadena no es una opción?
export default function App() { const [input, setInput] = useState(0) return ( <div className="App"> <input value={input} onChange={(e)=>setInput(parseFloat(e.target.value))}/> </div> ); }Puede agregar una verificación antes de establecer el estado para ver si el valor de entrada se puede analizar en un flotante.
function checkSetInput(e) { const val = parseFloat(e.target.value); if (isNaN(val)) return // do not set state when the input is not parsable setInput(val); // otherwise do set the state } ... <input value={input} onChange={checkSetInput} />