у переменной data? Приходится явно указывать типизацию у data
type FormProps<T> = {
onSubmit: (data: T) => void;
};
type LogInFormState = {
email: string;
password: string;
};
function LogInForm({ onSubmit }: FormProps<LogInFormState>) {
const [formData, setFormData] = useState<LogInFormState>({
email: "",
password: "",
});
function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {
const { name, value } = event.target;
setFormData((prevState) => ({ ...prevState, [name]: value }));
}
function handleSubmit(event: React.FormEvent<HTMLFormElement>) {
event.preventDefault();
onSubmit(formData);
}
return (
<form onSubmit={handleSubmit}>
<input
type="email"
name="email"
value={formData.email}
onChange={handleInputChange}
/>
<input
type="password"
name="password"
value={formData.password}
onChange={handleInputChange}
/>
<button type="submit">Log In</button>
</form>
);
}
function LogInPage() {
function handleLogIn(data: LogInFormState) {
console.log(data);
}
return <LogInForm onSubmit={handleLogIn} />;
}
объявление функции handleLogIn ни коим образом не связано с props и его типами
Хм, я думал так будет работать А есть возможность сделать так, как я хотел?
Можешь создать тип функции и использовать его, где необходимо. Вот только, скорее всего придётся делать стрелочные функции, но я не уверен
Обсуждают сегодня