#javascript #typescript #events #onchange #handle
Вопрос:
Я изучаю TS, и я не понимаю, почему событие, когда выполняется onChange, принимает только «любое».
Я попытался изменить событие, равное реакции.Обработчик изменений, но все равно не работает:
const onNameChange = (e: React.ChangeEventHandler<HTMLInputElement>) => {
setField({ ...field, name: e.currentTarget.value });
};
Я думаю, что каким-то образом мое событие должно быть равно моему интерфейсу «Подсчет». Следуйте полному коду:
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>
);
};
Ответ №1:
e
это не обработчик, это событие. onNameChange
является ли обработчиком
const onNameChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {
setField({ ...field, name: e.currentTarget.value });
};