我的App组件将事件处理程序作为Button Component
的道具传递给
// App.js
public handlePlay = () => {
this.setState({ ****** })
}
// render
<Button play={this.handlePlay} />
通过道具(即play
)传递的事件处理程序的正确类型是什么?
// Button.js
interface ButtontProps {
play: any //what is the correct type here?
}
export const Button: React.SFC<ButtontProps> = ({ play }) => (
<button onClick={play}>Play</button>
)
我不想使用any
,因为那样会使我无法为此类实例应用正确的类型。
答案 0 :(得分:2)
最有可能是以下其中之一
(event: React.MouseEvent<HTMLElement>) => void
(event: React.MouseEvent<HTMLInputElement>) => void
您可以通过查看React输入over here来确认。
答案 1 :(得分:2)
最简单的解决方案是使用MouseEventHandler
作为类型参数的HTMLButtonElement
类型:
interface ButtonProps {
play: React.MouseEventHandler<HTMLButtonElement>
}