Javascript 更改时的输入,包括反应和;类型脚本错误:jsx无lambda无绑定
我正在创建一个简单的任务演示并制作taskNameInput组件。你可以看到我尝试过几种方法来处理这个问题,但我总是出错。如何对Typescript作出反应 您可以看到我的tsconfig.json和tslint.json的repo:,我使用的是Javascript 更改时的输入,包括反应和;类型脚本错误:jsx无lambda无绑定,javascript,reactjs,typescript,typescript-typings,tslint,Javascript,Reactjs,Typescript,Typescript Typings,Tslint,我正在创建一个简单的任务演示并制作taskNameInput组件。你可以看到我尝试过几种方法来处理这个问题,但我总是出错。如何对Typescript作出反应 您可以看到我的tsconfig.json和tslint.json的repo:,我使用的是tslint react附带jsx no lambda和jsx no bind 触发jsx无绑定错误 public renderTaskInput(): React.ReactElement<{}> { return (
tslint react
附带jsx no lambda
和jsx no bind
触发jsx无绑定错误
public renderTaskInput(): React.ReactElement<{}> {
return (
<div>
<input
onChange={this.handleNewTaskName.bind(this)}
/>
</div>
)
}
public renderTaskInput(): React.ReactElement<{}> {
return (
<div>
<input
onChange={(e: React.FormEvent<HTMLInputElement>) => this.handleNewTaskName(e)}
/>
</div>
)
}
请注意handleNewTaskName是如何用name=()=>{}而不仅仅是name(){}实例化的 在构造函数中绑定方法,或使用es7类语法。以下是解决方案:
public handleNewTaskName = (e: React.FormEvent<HTMLInputElement>) => {
console.log(e.currentTarget.value)
this.setState({newTaskTitle: e.currentTarget.value})
}
public renderTaskInput(): React.ReactElement<{}> {
return (
<div>
<input
placeholder='New Task Name'
name='app-tasks-inputTaskName'
onChange={this.handleNewTaskName}
/>
</div>
)
public handleNewTaskName=(e:React.FormEvent)=>{
console.log(e.currentTarget.value)
this.setState({newTaskTitle:e.currentTarget.value})
}
公共renderTaskInput():React.ReactElement{
返回(
)
我很想看到一个解决方案,它以某种方式利用TypeScript的能力来推断事件类型,而不必键入React.FormEvent
,但我自己无法想出它。
public handleNewTaskName = (e: React.FormEvent<HTMLInputElement>) => {
console.log(e.currentTarget.value)
this.setState({newTaskTitle: e.currentTarget.value})
}
public renderTaskInput(): React.ReactElement<{}> {
return (
<div>
<input
placeholder='New Task Name'
name='app-tasks-inputTaskName'
onChange={this.handleNewTaskName}
/>
</div>
)