繁体   English   中英

React useEffect 钩子事件监听器触发了两次

[英]React useEffect hook event listener fired twice

我有这个钩子:

useEffect(() => {
        window.addEventListener('keydown', handleKeyPress);
        return () => window.removeEventListener('keydown', handleKeyPress);
        }, [props.tps])

但是,由于某种原因,在关联的按键上,handleKeyPress function 被调用了两次。 我尝试将 handleKeyPress 添加为依赖项,但这也不起作用。 有任何想法吗?

我看到这个很晚,但对于可能有这个问题的其他人:这可能是因为index.js中的React.StrictMode并且在使用钩子时这是有意的。 这是参考

我不确定您为什么添加props.tps ,但尝试将其从依赖项 arrays 中删除。

props.tps在那里没有做任何事情,你需要从依赖数组中删除props.tps因为:

1.- 事件监听器(因为它不是来自组件本身,而是来自window )应该在“componentDidMount”或等效的空依赖数组上创建。

2.- 依赖数组上的值也应该在 useEffect function 中以使其正常工作。

尝试将其从依赖数组中取出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM