我正在尝试在我的 React 应用程序内的页面组件之一中设置锚导航。
我试图模仿在 Draft.js上看到的相同功能,它使用子标题作为锚点(旁边有链接图标),这也反映在 URL 中。
作为参考,我正在查看http://www.tagindex.net/html/link/a_name.html
所以我继续尝试使用name
属性来实现
<List.Item>
<a href="#createqueryschema">Create Query Schema</a>
</List.Item>
然后它应该跳转到的子标题
<Header>
<a name="createqueryschema">Create Query Schema</a>
<Header.Subheader style={{ marginTop: "20px", fontSize: "1rem" }}>
BLAH BLAH BLAH BLAH BLAH BLAH
</Header.Subheader>
</Header>
我在名为 的页面上呈现此列表和子标题/overview
,因此理论上,当我单击列表中的项目时,它应该跳转到Create Query Schema
子标题并反映/overview#createqueryschema
在 URL 中。
但是,它正在尝试导航到 page /createqueryschema
。我不确定为什么/如何在它应该只附加 # 和name
属性时尝试导航到新页面。
编辑:它也没有跳转到所需的元素
我有一个codeandbox设置来进一步解释。单击菜单栏顶部的 docs,这将带您到带有锚点导航的页面。如果您单击该Overview
部分下的两个锚点中的任何一个,<Header>
则不会滚动到相应的位置。
编辑:更新以更好地解释路由问题
我在为同一页面导航设置锚元素时仍然遇到一些问题。由于另一个原因,我的应用程序已经在使用哈希路由器,所以我的基本页面/home/#/
每个其他页面看起来像这样/home/#/page1
/home/#/page2
例如,我正在使用页面内锚点导航来page2
创建指向下面命名锚点的链接
<List.Item>
<a href="#some-random-header">Random Header</a>
</List.Item>
然后使用id
属性
创建命名锚点<Header id="some-random-header">Random Header Section</Header>
当我点击链接时,它尝试导航到一个新页面,网址为/home/#/some-random-header
INSTEAD/home/#/page2#some-random-header