在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react 中為什么觸發(fā)不了 onScroll事件?

react 中為什么觸發(fā)不了 onScroll事件?

官方文檔里講了一個事件 就是 UI事件 onScroll
但是 實際在代碼中去監(jiān)聽不到
onScroll={ e => { this.handleScroll(e) } } hanleScroll中我設置了打印1 并不能打印
難道只能在 componentDidMount hook里去監(jiān)聽window scroll事件?
奇怪的是我第一次用react做項目的時候用了hashrouter 在 componentDidMount 里監(jiān)聽
window scroll 事件都不可以 window.scrollTo 事件也不生效

大家有遇到類似的問題嗎 分享一下

回答
編輯回答
默念

這是之前寫的返回頂部的組件,就是在 componentDidMount 里監(jiān)聽 window scroll 事件。
https://github.com/BaoXuebin/xdbin-react-app/blob/master/src/app/components/BackTop.jsx

這里分享一個之前遇到的坑吧。因為返回頂部這個組件基本每個頁面都會用到,而一個頁面里對 window scroll 事件的處理有可能不止一個。如果每個組件里都寫如下代碼:

componentDidMount() {
    window.onscroll = () => {
        // ...
    };
}

則肯定會覆蓋原有的 window.onscroll 方法。所以正確的處理應該是延續(xù) onscroll 事件的冒泡執(zhí)行。

componentDidMount() {
    window.onscroll = () => {
        if (window.onscroll) {
            window.onscroll();
        }
        // ...
    };
}
2018年8月3日 15:07