gpt4 book ai didi

reactjs - react 和 typescript : Argument of type is not assignable to parameter of type 'EventListenerOrEventListenerObject'

转载 作者:行者123 更新时间:2023-12-02 03:35:32 29 4
gpt4 key购买 nike

我正在尝试将 Typescript 添加到我的 React 项目中:

componentDidMount() {
document.addEventListener('mousemove', this.handleMouseMove);
}

private handleMouseMove = (e: React.MouseEvent<HTMLElement>) => {
appStore.updateSideWidth(e.pageX);
}

但是我在this.handleMouseMove下得到了以下错误:

[ts]
Argument of type '(e: MouseEvent<HTMLElement>) => void' is not assignable to parameter of type 'EventListenerOrEventListenerObject'.
Type '(e: MouseEvent<HTMLElement>) => void' is not assignable to type
'EventListenerObject'.
Property 'handleEvent' is missing in type '(e: MouseEvent<HTMLElement>)
=> void'.

我试过:

1) @ts-ignore 它有效,但我不愿意这样做,因为这就是我使用 Typescript 的原因2)使用类似的东西:

private handleMouseMove = (e: Event) => {
appStore.updateSideWidth((e as React.MouseEvent<HTMLElement>).pageX);
}

但出现错误提示,由于缺少 altKey,无法将 Event 转换为 MouseEvent 类型。

感谢您的帮助!

最佳答案

事件 e 将不是 React 事件,因为您正在向 document 添加事件监听器。所以 e 的类型将只是 MouseEvent

尝试:

componentDidMount() {
document.addEventListener('mousemove', this.handleMouseMove);
}

private handleMouseMove = (e: MouseEvent) => {
appStore.updateSideWidth(e.pageX);
}

关于reactjs - react 和 typescript : Argument of type is not assignable to parameter of type 'EventListenerOrEventListenerObject' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342816/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com