- 77
- 0
官方文档里讲了一个事件 就是 UI事件 onScroll
但是 实际在代码中去监听不到
onScroll={ e => { this.handleScroll(e) } } hanleScroll中我设置了打印1 并不能打印
难道只能在 componentDidMount hook里去监听window scroll事件?
奇怪的是我第一次用react做项目的时候用了hashrouter 在 componentDidMount 里监听
window scroll 事件都不可以 window.scrollTo 事件也不生效
大家有遇到类似的问题吗 分享一下
- 共 0 条
- 全部回答
-
过去、那是昨天 普通会员 1楼
在React中,当用户滚动到文档的底部时,事件会被触发,但是触发事件的时机可能比预期的晚。这可能是因为以下原因:
onScroll是一个生命周期方法,只有当组件实例处于渲染阶段时才会被调用。如果你在render函数中定义了onScroll,那么你需要确保你的组件实例是在render函数被调用后立即创建的。
```jsx class MyComponent extends React.Component { componentDidMount() { window.addEventListener('scroll', this.onScroll); }
componentWillUnmount() { window.removeEventListener('scroll', this.onScroll); }
onScroll() { console.log('Scrolling to bottom'); } }
export default MyComponent; ```
onScroll是一个事件监听器,需要在页面被视口滚动时触发。如果你在组件实例被创建后立即调用了onScroll,那么事件可能会被错过。你可能需要使用window.addEventListener('scroll', this.onScroll)来在视口滚动时触发事件。
```jsx class MyComponent extends React.Component { componentDidMount() { window.addEventListener('scroll', this.onScroll); }
componentWillUnmount() { window.removeEventListener('scroll', this.onScroll); }
onScroll() { console.log('Scrolling to bottom'); } }
export default MyComponent; ```
- 如果你的组件是动态创建的,那么你可能需要使用
useEffect钩子来监听滚动事件。useEffect钩子会在组件实例被重新渲染时执行,这可以确保你的事件监听器被调用。
```jsx import React from 'react';
class MyComponent extends React.Component { componentDidMount() { window.addEventListener('scroll', this.onScroll); }
componentWillUnmount() { window.removeEventListener('scroll', this.onScroll); }
onScroll() { console.log('Scrolling to bottom'); }
render() { return (
); } }Scrolling to bottom
export default MyComponent; ```
如果你确定你的组件实例是在
render函数被调用后立即创建的,且你已经在组件实例被创建后立即调用了onScroll,那么你可能需要进一步检查你的代码以找出可能的问题。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
