javascript - 如何滚动到 ReactJs 中的元素?
问题描述
我正在 React 中构建一个 SPA,我需要在单击它时让导航滚动到页面部分,就像我们在 html 中使用锚标记一样。
我发现这个建议使用ref
并且它似乎有效:
Anchor navigation using the <a> tag inside a react component
问题是我不知道如何在单独的组件中做到这一点。
这些是我的组件:
因此,我将所有这些功能组件作为Layout
' 孩子。我的导航,其中包含引用其中一些组件的项目,在里面Header
:
这是我的导航,里面有什么Header
。由于它是一个单页应用程序,我想要做的是当我点击Menu
页面时滚动到菜单部分(菜单组件),当我点击Reviews
它时滚动到CustomerReviews
等等。
既然Navigation
是 inside Header
,我相信我必须做的是在其中创建一个Layout
能够访问其他组件的方法,但我必须从 inside 触发这个方法Header
。没问题。但我不知道如何使页面滚动到组件,因为我不能只将 aref
放入组件中。像这样:
有没有办法做到这一点?即使没有ref
,这也是迄今为止有意义的。
解决方案
我最终使用了React Scroll,它运行良好。我一直在寻找本机解决方案,但由于我找不到它,所以这个包可以完成这项工作。
推荐阅读
- javascript - 使用 JavaScript 从网格数组中删除列
- c# - 用 T 替换动态对象
- url - OAuth 隐式授权 - 无法获取包含访问令牌的 URL 片段
- java - 如何在 Java 中启动许多(100 多个)程序实例?
- javascript - 使用变量中的数学函数获取输入值
- vue.js - Vue 路由生命周期
- docker-compose - 如何使用 docker-compose 和 Hyperledger Sawtooth 访问暴露的容器?
- eclipse - 如何在 Eclipse 中打印出突出显示的文本?
- pyomo - 求解器状态总是可以从终止条件中推断出来吗?
- sample - 从 dokka 文档中排除样本