[英]Property does not exist on type - TypeScript
創建了自定義Form
組件,該組件應該在子輸入更改時更改其data
。
長話短說:
在當前上下文中, currentTarget
是表單, target
是觸發事件的輸入。 target
正是我需要的-因為我可以隨后更新數據:
this.setState({
data: {
[e.target.name]: e.target.value
}
});
有任何想法嗎?
編輯:像這樣的工作,但這只是錯誤的:
handleChange(e:React.FormEvent){let foo:any = e; this.setState({data:{[foo.target.name]:foo.target.value}}); }
經過一些實驗:
handleChange(e: React.FormEvent<HTMLFormElement>) { let name: string = (e.target as HTMLFormElement).name; let value: string = (e.target as HTMLFormElement).value; this.setState({ data: { [name]: value } });
這是有道理的,因為在這種情況下, HTMLInputElement
( target
)被作為HTMLFormElement
(listener)訪問。
可能會有更優雅的解決方案,但這有點奏效。
您如何調用函數handleChange?
我想你正在做這樣的事情:
onChange={this.handleChange()}
但您必須這樣做:
onChange={this.handleChange)}
實際上,您必須傳遞函數的引用,而不是調用函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.