2016-09-06 102 views
0

我有一个浏览功能,使用无限滚动在页面上加载更多数据。它工作正常;但是,当我路由到不同的页面时,该页面也会自动向下滚动。如何停止滚动事件影响React JS中的其他页面

有没有办法在改变路线或卸载时杀死滚动事件?

到目前为止,我尝试这些方法:

$(window).unbind('scroll'); 

$(window).bind('touchmove',function(e){ 
     e.preventDefault(); 
}); 

唯一欠缺的部分是停止滚动事件改变路线/页时。请指教。非常感谢。

回答

1

使用componentWillUnmount生命周期的方法来解除绑定的所有处理

+0

其实我在'componentDidMount'和'componentWillUnmount'上加了unbind和'touchmove',但结果仍然是一样的。这是让我困惑:( –

0

你可以从听众reactjs使用这样的:

componentDidMount =()=> { 
     window.addEventListener('resize', this.handleResize); 

     }; 

     componentWillUnmount =() => { 
     window.removeEventListener('resize', this.handleResize); 

     }; 
     handleResize = (e) => { 
     const W = window.innerWidth; 
     this.setState({windowWidth: W}); 
    } 
+0

谢谢你的建议,我会试试这个 –

0

我想我知道这个问题,当我去到另一个网页出现问题而前一页仍在加载或订阅数据。现在我正试图找到一种方法来减少订阅过程。