2016-09-06 100 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

我想我知道這個問題,當我去到另一個網頁出現問題而前一頁仍在加載或訂閱數據。現在我正試圖找到一種方法來減少訂閱過程。