我正在尝试使用打字稿并做出正确的反应。现在,我很难使用打字稿来处理onChange
和onSubmit
事件。我不知道要使用什么注释和类型。我发现在我的SignUpForm组件中,使用any
类型将删除错误,但是我不认为这是最佳实践。
在DefinitelyTyped source code中,我应该使用ChangeEventHandler<T>
来处理<input>
onchange
,但是我不知道要使用什么Type(T)
,因为Visual Studio Code说我无法使用.currentTarget
或.target
检索我想要的值。
对于我的handleSubmit
方法,I think I am supposed to use FormEventHandler
,但是再次,我不知道要传入哪种类型。我的文本编辑器还告诉我,我无法访问{{1} }
SignUpPage.tsx
.preventDefault()
SignUpForm.tsx
import React, { FormEventHandler, InputHTMLAttributes, EventHandler } from 'react';
import SignUpForm from './SignUpForm';
interface IProps {}
interface IState {}
class SignUpPage extends React.Component<IProps, IState> {
constructor(props: IProps) {
super(props);
this.state = {
email: "",
}
}
handleSubmit = (event: FormEventHandler<>): void => {
event.preventDefault();
}
handleChange = (event: React.ChangeEventHandler<HTMLInputElement>): void => {
const { value, name} = event.;
this.setState({ [name]: value })
}
render() {
return(
<SignUpForm
handleSubmit={ this.handleSubmit }
handleChange={ this.handleChange }
/>
);
}
}
export default SignUpPage;