我正在尝试在我的反应应用程序内的页面组件之一中设置锚点导航。

我正在尝试模仿所看到的相同功能在 Draft.js 上 https://draftjs.org/docs/getting-started#installation它使用子标题作为锚点(旁边有链接图标),这也反映在 URL 中。

作为参考,我正在查看http://www.tagindex.net/html/link/a_name.html 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在网址中。

但是,它正在尝试导航到页面/createqueryschema。我不确定为什么/如何尝试导航到新页面,而它应该只是附加 # 和name属性。

编辑:它也没有跳转到所需的元素

我有一个代码沙箱 https://codesandbox.io/s/zk0970zypl设置进一步解释。单击菜单栏顶部的文档,这将带您进入带有锚点导航的页面。如果单击下面的两个锚点中的任何一个Overview然后相应的部分<Header>没有滚动到。

EDIT: 更新以更好地解释路由问题

我在为同一页面导航设置锚元素时仍然遇到一些问题。 我的应用程序已经出于另一个原因使用哈希路由器,所以我的基本页面/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>

当我单击链接时,它会尝试导航到带有 url 的新页面/home/#/some-random-header代替/home/#/page2#some-random-header


通常 # 用于 Id,但是在 React 中不使用 id。你能做的就是创建一个参考。然后您可以创建一个方法 onClick 以在单击 ref 时滚动到 ref

所以你可以尝试这样的事情:

import React, { useRef } from "react";

const Component = () => {
   const myRef = useRef();
   const handleClick = () => {
      window.scrollTo(0, myRef.current.offsetTop)
   }
   return ( 
      <>
      <List.Item>
         <p onClick={handleClick}>Create Query Schema</p>
      </List.Item>
      <div name="createqueryschema" ref={myRef} >Create Query Schema</div> 
      </>
)

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随机推荐

  • 如何通过 Robobrowser 使用代理

    我正在与http robobrowser readthedocs org en latest readme html http robobrowser readthedocs org en latest readme html 一个基于 b
  • `success` 方法已被弃用。使用“then”方法代替

    您好 我是 Vue 世界的新手 这是我收到的警告 成功方法已被弃用 请改用 then 方法 这是代码 apiURL api movies new Vue el app data movies ready function this getM
  • SwiftUI - 方向更改后,NavigationView 标题和后退按钮被夹在状态栏下

    每当我将设备旋转到横向并再次返回时 顶部NavigationView 包括标题和后退按钮 被剪切在状态栏下方 最小可重现示例 struct ContentView View var body some View NavigationView
  • 如何使用 IPython 的事后 %debug 启动 pudb?

    I just 开始了 https documen tician de pudb starting html using breakpoint and pudb 这太棒了 现在我该如何制作 IPython debug神奇的启动pudb 注 p
  • 领域对象返回 nil (Swift)

    我有一个自定义多边形对象 因此我可以将地图叠加保存到领域 我能够成功创建这个对象 但是当我想检索 var 多边形对象时 它返回 nil 当我打印多边形对象时 它可以很好地打印出所有数据 这是打印内容的示例 CustomPolygon nam
  • 通过 MailChimp 发送电子邮件

    我认为问题出在附近 api gt listSubscribers include libs mailchimp MCAPI class php options array list id gt list id subject gt Prov
  • 如何等待在react.js中渲染视图直到$.get()完成?

    您好 我正在用 Reactjs 编写一个聊天客户端 并希望使用从 REST 调用检索到的数据来渲染我的组件 但是 我的组件是在 REST 请求返回数据之前渲染的 当我在我的子组件中调用 this props 时 这会导致错误 var Mai
  • 内部没有图像的链接的 jQuery 选择器

    我绑定一个click链接功能 body on click a function do something 现在我正在寻找一个仅在链接不包含图像标签时才匹配的选择器 有点类似于a not img but img是子元素 我怎样才能做到这一点
  • 修复 Vanilla JS Accordion 以一次展开一个选项卡

    我有这个手风琴工作 但是 我试图弄清楚如何一次仅展开一个 单击另一个选项卡 另一个选项卡关闭 我尝试了不同的方法来删除该类 但没有得到预期的结果 我也一直在尝试重构for循环到 ES6 标准 但这不是一个问题 样式是 Sass 因此在 JS
  • 从文本文件加载数据然后将其存储到数据库的最快方法

    我有问题 我正在开发一个项目 但我陷入了这一部分 我想从文本文件加载数据并将其存储到数据库访问中 things 是每个文本文件内的数据 大约 12 000 行数据 每个文本文件大约需要 10 分钟来处理 注意 在存储数据之前 我将文本文件中
  • WSo2 EMM - 应用程序管理数据库错误

    运行 WSo2 EMM 1 1 0 除了一个大问题外 一切都工作正常 从我第一次单击 应用程序管理 选项卡中的应用程序那一刻起 只要服务器正在运行 WSO2EMM DB h2 db 文件就会开始稳定增长 即使完全没有任何更改 最终 它变得如
  • PL/pgSQL 中“$$”的用途是什么

    对于 PL pgSQL 来说是全新的 双美元符号的含义是什么这个功能 http postgres cz wiki PL pgSQL 28en 29 CREATE OR REPLACE FUNCTION check phone number
  • 何时对 xmlns 使用 URN

    对于 hello world 类型的 xml 文档
  • 如何在引导程序中将边框半径应用于?

    我需要一行应该是圆角的 并且行与行之间有间距 到目前为止 我尝试了如下所示的表格 曲线类 任何建议 修改都会有帮助 My CSS table curved border collapse separate table curved bord
  • 如何等待所有请求完成

    我用的是宁AsyncHttpClient从命令行程序 我需要等待所有请求结束 以便我可以安全地拨打电话close 在客户端上 挑战在于我从该计划的许多不同部分提出了许多请求 下面剥离了自己的代码 显示了我从以下位置执行嵌套 HTTP 请求的
  • 如何使PHP库松耦合? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • BasicNetwork.performRequest:意外响应代码 500

    我的 Android Studio 中有这个登录 Java 代码 private void loginUser pd ProgressDialog show LoginActivity this Loading StringRequest
  • 将 jQuery 与托管在 Github 页面上的 Jekyll 站点结合使用

    我有一个简单的 Jekyll 博客托管在 github 页面上 我已经包含了 jQuery 和 tablesorter 插件 但遇到了错误 据我所知 这个错误是由于没有以正确的顺序加载 jQuery 引起的 我的下图显示代码的顺序是正确的
  • 在数据库中存储多维数组:关系数组还是多维数组?

    我读过很多类似的帖子多维到单维 多维数据库等等 但没有一个答案有帮助 我确实在谷歌上找到了很多文档 但只提供了背景信息 并没有回答手头的问题 我有很多彼此相关的字符串 PHP 脚本中需要它们 结构是分层的 这是一个例子 A AA AAA A
  • 使用 React 组件内的 标签进行锚定导航

    我正在尝试在我的反应应用程序内的页面组件之一中设置锚点导航 我正在尝试模仿所看到的相同功能在 Draft js 上 https draftjs org docs getting started installation它使用子标题作为锚点