javascript - 页面加载时自动滚动到 div 的底部
问题描述
我在 react 中有一个聊天应用程序,并且到目前为止一直使用 npm 包 react-scroll-to-bottom。但它没有得到维护并发出警告,所以我认为自己写这个应该不会太难。我正在关注关于 stackoverflow 的各种答案,但似乎无法正确解决。
当页面加载时,它应该只是滚动到容器的底部。
任何想法我做错了什么?提前致谢!编辑:现在我在树的末尾有一个 div,它有 ref,因为我认为滚动到它会更容易,而不是试图告诉 div 在其中滚动。
const chatHistoryRef = React.useRef();
React.useEffect(() => {
window.scrollTo(0, chatHistoryRef.current.offsetTop);
}, [chatHistoryRef]);
解决方案
您useEffect
没有任何依赖项,因此如果 ref 更改(如 div 被渲染),效果将不会运行。依赖项在第二个参数中设置为数组,如下所示:
useEffect(() => {
// do something with chatHistoryRef.current
}, [chatHistoryRef.current])
推荐阅读
- mongodb - 修改MongoDB中对象内的数组元素
- python - 为什么 Pycharm 显示“ModuleNotFoundError: No module named 'kivy._metrics'”?
- javascript - Sequelize接收空数组,同时在顶层进行关联过滤
- android - 在设置颤振环境期间不接受 Android 许可证
- powershell - 为什么我会在 netstat 中得到这个本地地址结果?
- php - 如何使用两个不同的表过滤 laravel ajax 表
- python - 神经网络 ValueError:形状 (2115,13) 和 (1,) 未对齐:13 (dim 1) != 1 (dim 0)
- tensorflow - Model.fit_generator 已弃用,将在未来版本中删除
- python - 如何将声明的变量存储在数组中
- embedded-linux - yocto 在编译时禁用 systemd 服务的自动启动