diff --git a/packages/remax-runtime/src/createPageConfig.web.tsx b/packages/remax-runtime/src/createPageConfig.web.tsx index 492fab788..b495301d3 100644 --- a/packages/remax-runtime/src/createPageConfig.web.tsx +++ b/packages/remax-runtime/src/createPageConfig.web.tsx @@ -68,21 +68,23 @@ export default function createPageConfig(Page: React.ComponentType, name: s page.callLifecycle(Lifecycle.show); page.callLifecycle(Lifecycle.ready); - this.handlePageScroll(); + this.registerPageScroll(); } componentWillUnmount() { - window.removeEventListener('scroll', this.scrollEvent); + this.unregisterPageScroll(); } componentDidCache = () => { this.title = document.title; page.callLifecycle(Lifecycle.hide); + this.unregisterPageScroll(); }; componentDidRecover = () => { this.setTitle(); page.callLifecycle(Lifecycle.show); + this.registerPageScroll(); }; setTitle = () => { @@ -110,10 +112,14 @@ export default function createPageConfig(Page: React.ComponentType, name: s page.callLifecycle(Lifecycle.pageScroll, event); }; - handlePageScroll = () => { + registerPageScroll = () => { window.addEventListener('scroll', this.scrollEvent); }; + unregisterPageScroll = () => { + window.removeEventListener('scroll', this.scrollEvent); + }; + handleRefresh = async () => { this.setState({ refreshing: true,