【发布时间】:2020-05-14 06:38:33
【问题描述】:
我有一个使用名为#mainView 的静态ID 呈现的组件。我有一个组件在页面下方呈现button 元素,我想在单击按钮时向上滚动到#mainView 元素。据我所知,这是一个非常简单的用户体验,它是 decades now 的 Web 标准的一部分,可以通过普通 HTML 中的简单 <a href="#mainView">...</a> 来完成(并使用 scroll-behavior: smooth 作为实验性功能进行扩展) )。
我花了最后一个小时试图在 React 中复制这种行为,但无济于事。 URL 中的哈希被忽略,Gatsby 抱怨外部链接。我试过@reach/router/navigate 和Link。我曾尝试使用onClick={...},但手动尝试覆盖onclick 不起作用。这些都不会产生 任何 行为,我可以在 SO 上找到的唯一方法涉及扩展 React.Component 并进入 render(),使用另一种方法,使用 refs,以及各种应该如此简单的 UX 不需要 10,000%。
有任何方法让 React 轻松复制我想要的吗?而且,为什么 React 开发人员会积极打破传统的 Web 功能?感谢所有回复。
【问题讨论】:
-
我投票结束这个问题,因为我自己找到了解决方案。
标签: javascript reactjs