Reactjs Typescript onChange未传递事件。动态更新道具的名称
我正试图得到一个基本的表单来处理typescript。我有下面的表格,把所有的打字都搞定了。我无法获取事件名称以动态设置状态 这是我的密码:Reactjs Typescript onChange未传递事件。动态更新道具的名称,reactjs,typescript,react-bootstrap,Reactjs,Typescript,React Bootstrap,我正试图得到一个基本的表单来处理typescript。我有下面的表格,把所有的打字都搞定了。我无法获取事件名称以动态设置状态 这是我的密码: import React, { Component, FormEvent } from 'react'; import './App.css'; interface IState { email: string; password: string; } class App extends Component<object, IState&
import React, { Component, FormEvent } from 'react';
import './App.css';
interface IState {
email: string;
password: string;
}
class App extends Component<object, IState> {
constructor(props: any) {
super(props);
this.state = {
email: '',
password: '',
};
this.handleChange = this.handleChange.bind(this);
}
public render() {
return (
<div>
<input
id="txtEmail"
placeholder="Enter Email"
onChange={this.handleChange}
value={this.state.email}
/>
<input placeholder="Password" onChange={this.handleChange} value={this.state.password} />
</div>
);
}
private handleChange(event: React.FormEvent<HTMLInputElement>) {
const target = event.target as any;
console.log(target.name);
this.setState({ [target.name]: target.value } as IState);
}
}
export default App;
import React,{Component,FormEvent}来自'React';
导入“/App.css”;
界面状态{
电子邮件:字符串;
密码:字符串;
}
类应用程序扩展组件{
构造器(道具:任何){
超级(道具);
此.state={
电子邮件:“”,
密码:“”,
};
this.handleChange=this.handleChange.bind(this);
}
公共渲染(){
返回(
);
}
私有handleChange(事件:React.FormEvent){
const target=event.target,如有;
console.log(target.name);
this.setState({[target.name]:target.value}作为IState);
}
}
导出默认应用程序;
console.log(event.name)
为空,因此不设置我的状态。我已尝试添加和删除event.persist()
,并使用event.target
似乎什么都没有得到名称。这和我打字有关吗
每当我在文本框中键入内容时,
target.value
属性就会正确传递。将name属性添加到输入中。e、 g
<input id="txtEmail"
name="txtEmail"
placeholder="Enter Email"
onChange={this.handleChange}
value={this.state.email}
/>
哇,真不敢相信我错过了。要动态更新我的状态,我必须将其填充为名称字段以匹配我的状态属性。但是非常感谢!