Tôi là một chút bối rối, sự khác biệt giữa sintax đây là những gì:Phản hồi cách xóa danh sách chính xác trong componentWillUnmount, tại sao tôi cần liên kết trong hàm tạo?
constructor(props) {
super(props);
this.state = {
openPane: false
}
this.togglePaneHelper = this.togglePaneHelper.bind(this);
}
componentDidMount() {
document.body.addEventListener('click', this.togglePaneHelper);
}
componentWillUnmount() {
document.body.removeEventListener('click', this.togglePaneHelper);
}
và một này:
constructor(props) {
super(props);
this.state = {
openPane: false
}
}
componentDidMount() {
document.body.addEventListener('click', this.togglePaneHelper.bind(this));
}
componentWillUnmount() {
document.body.removeEventListener('click', this.togglePaneHelper);
}
mối quan tâm của tôi là cú pháp thứ hai là không loại bỏ một cách chính xác các listner và nó gây ra cảnh báo này:
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
Vì vậy, cách tiếp cận đầu tiên là phương pháp loại bỏ chính xác trình xử lý sự kiện? Mọi nhận xét về bài viết này: https://gist.github.com/Restuta/e400a555ba24daa396cc? – claireablani
Có, cách tiếp cận đầu tiên hoạt động như dự định - giống như nó được thảo luận trong ý chính đó. –