Estoy aprendiendo TS, y no entiendo por qué el evento, cuando se ejecuta onChange, solo acepta "cualquiera".
Traté de cambiar el evento igual a React.ChangeEventHandler , pero aún no funciona:
const onNameChange = (e: React.ChangeEventHandler<HTMLInputElement>) => { setField({ ...field, name: e.currentTarget.value }); };Creo que, de alguna manera, mi evento debe ser igual a mi interfaz "CountProps". Sigue el código completo:
import React, { useState } from "react"; interface FieldProps { name: string; } export const TextField: React.FC = () => { const [field, setField] = useState<FieldProps>({ name: "" }); console.log(field); const onNameChange = (e: any) => { setField({ ...field, name: e.currentTarget.value }); }; return ( <div> <input type="text" onChange={onNameChange} name="name" value={field.name} /> </div> ); };e no es el controlador, es el evento. onNameChange es el controlador
const onNameChange: React.ChangeEventHandler<HTMLInputElement> = (e) => { setField({ ...field, name: e.currentTarget.value }); };