gpt4 book ai didi

javascript - 如何从reactjs中的文档中删除事件监听器

转载 作者:行者123 更新时间:2023-11-28 14:14:18 24 4
gpt4 key购买 nike

我是 React 的初学者,我遇到了一些问题。我想在componentDidMount()中添加一些事件监听器方法,另外我需要捕获事件以查找单击了哪个键。我想在 componentWillUnmount() 中删除它方法。我用额外的功能做了它。但有一些问题。一段时间后(例如一秒钟后),我想更新父组件中的状态(这会触发组件卸载,我做到了),但是有一个问题我无法删除 componentWillUnmount() 中的事件监听器所以请帮助我。

这是我的代码

import React, { Component } from 'react';
class Element extends Component {

componentDidMount(){
const {attributes, startTime, timeOut, automaticAnswer} ={...this.props};
document.addEventListener('keypress', function func(e){
that.handleClick(e, startTime, attributes.keyBoardKey, false, timeOut, func)});
}


handleClick(event, startTime, realAnswer, automaticAnswer, timeOut, func){
this.props.fillAnswer(event.key ? event.key : '', startTime, realAnswer, automaticAnswer, timeOut);
document.removeEventListener('keypress', func);
}

render() {
const {attributes, startTime, timeOut, automaticAnswer} ={...this.props};
if(automaticAnswer ){
this.handleClick('', startTime, attributes.keyBoardKey, true, timeOut);
}


return (
<span className={attributes.className}>{attributes.value}</span>
);
}
}

export default Element;

最佳答案

下面的链接有望匹配您的用例,而且我猜您的问题重复问题 This how you do it

constructor(props){
super(props);
this.onScroll = this.onScroll.bind(this);
}

componentDidMount() {
window.addEventListener('scroll', this.onScroll, false);
}

componentWillUnmount() {
window.removeEventListener('scroll', this.onScroll, false);
}

关于javascript - 如何从reactjs中的文档中删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218576/

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