如何将普通锚链接与react-router一起使用

2024-01-04

非常类似于这个有角度的问题 https://stackoverflow.com/questions/14712223/how-to-handle-anchor-hash-linking-in-angularjs:使用react-router时如何使用锚链接进行页内导航?

换句话说,使用react-router时如何实现以下纯HTML?

<a href="#faq-1">Question 1</a>
<a href="#faq-2">Question 2</a>
<a href="#faq-3">Question 3</a>

<h3 id="faq-1">Question 1</h3>
<h3 id="faq-2">Question 2</h3>
<h3 id="fa1-3">Question 3</h3>

目前,我拦截此类链接的点击,并滚动到锚点位置。这并不令人满意,因为这意味着不可能直接链接到页面的某些部分。


锚链接的问题在于,react-router 默认是使用 URL 中的哈希来维护状态。幸运的是,您可以将默认行为替换为其他行为,按照位置文档 https://github.com/rackt/react-router/blob/f7b86bc7c40c3e5167bf00c380405a69eb454b25/docs/api/Location.md。在您的情况下,您可能想尝试使用 HistoryLocation 对象来尝试“干净的 URL”,这意味着 React-router 不会使用 URL 哈希。像这样尝试一下:

Router.run(routes, Router.HistoryLocation, function (Handler) {
  React.render(<Handler/>, document.body);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将普通锚链接与react-router一起使用 的相关文章

  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 如何使用 axios / jest 测试失败的请求

    我创建了一个非常小的应用程序 如果您传递硬币和数量 它可以计算为某些加密货币支付的总价格 我想测试错误 但我总是收到 收到的承诺已解决而不是被拒绝 我相信这是因为如果 url 错误 axios 仍然会解决承诺 我遇到的第二个问题是 我尝试测
  • 来自 DataURL 的 Blob?

    Using FileReader s readAsDataURL 我可以将任意数据转换为数据 URL 有没有办法将数据 URL 转换回Blob使用内置浏览器 API 的实例 用户 Matt 一年前提出了以下代码 如何在javascript中
  • 如何在 Node.js 中让一个 EventEmitter 监听另一个 EventEmitter?

    我想做这样的事情 var events require events var emitterA new events EventEmitter var emitterB new events EventEmitter emitterA ad
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 是否可以覆盖 javaScript 原始数据类型?

    问题是不言自明的 我知道可以扩展原始数据类型 例如string但有可能覆盖它吗 这是在采访中被问到的一个问题 不 你不能覆盖任何东西 Ecma脚本定义原始类型 http es5 github com x4 3 2 Undefined Nul
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 代码分割/反应可加载问题

    我正在尝试使用react loadable 将代码分割引入我的应用程序 我在一个非常简单的组件上尝试过 const LoadableComponent Loadable loader gt import components Shared
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • 常规 JavaScript 可以与 jQuery 混合使用吗?

    例如 我可以采用这个脚本 来自 Mozilla 教程 https developer mozilla org en Canvas tutorial Basic usage
  • 如何在粘贴时获取文本区域输入字段的新值?

    我发现当我尝试从文本区域字段读取值时onpaste调用函数时 我得到字段的旧值 粘贴操作之前的值 而不是新值 粘贴操作之后的值 以下是此行为的演示 http jsfiddle net qsDnr http jsfiddle net qsDn
  • 从 Firebase 实时数据库 + 存储加载图像

    我正在使用 Firebase 文档 react redux firebase 中的 create react app 创建类似汽车图片库的东西 图像信息存储在 Firebase 实时数据库中 但实际图像文件存储在 Firebase 存储中
  • 在 Google Apps 脚本中的文本前插入换行符

    我需要在 Google 文档中的某些文本之前插入一些换行符 尝试过这种方法但出现错误 var body DocumentApp getActiveDocument getBody var pattern WORD 1 var found b
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch
  • 如何在reactJS中将一个页面重定向到另一个页面?

    App js 这是按钮点击事件处理 this handleClick this handleClick bind this handleClick e debugger e preventDefault this context route

随机推荐

  • 当 Windows 进入睡眠模式然后唤醒时 setTimeout 不起作用

    我在 Chrome 中注意到了这一点 有人知道出了什么问题或解决方法吗 您可以使用setInterval相反 它继续运行 如果您需要一次性解决方案 请使用clearInterval删除计时器 setInterval如果计算机处于睡眠状态 而
  • 在视图模式中打开会话

    鉴于我选择的 JPA Hibernate 实现 Spring 和 开发框架 我问这个问题 我一直在思考实体层中的关系 例如 我有一个包含许多订单行的订单实体 我已经设置了我的应用程序 以便它急切地加载每个订单的订单行 您是否认为这是一种解决
  • C 使用信号同步进程

    好吧 我正在尝试自学如何发送信号 但我遇到了一个小问题 我不知道我做错了什么 现在发生的事情是 它正在执行父级 然后转到子级 然后返回父级 它没有执行我希望它执行的操作 即执行父级 用户定义其运行的时间量 然后杀死它然后转到子进程并在相同的
  • 使 tkinter 按钮大小相同

    我想让所有 tkinter 按钮的大小相同 无论文本如何 是否可以拉伸其他按钮以相互匹配或设置特定尺寸 因为我很难在文档中找到如何执行此操作 目前 按钮根据文本的大小进行拉伸 我的意思的例子 https i stack imgur com
  • 在 Selenium IDE 中使用 waitForCondition ( script,timeout )

    我使用 Firefox 的 Selenium IDE 扩展录制了一个脚本 我想添加命令 waitForCondition 我发现它需要两个参数 脚本和超时 在 Selenium IDE 中 每个命令都有 3 个文本字段 命令名称 我假设为
  • SendMessage(WM_COPYDATA) + 记录 + 字符串

    我想发送一条记录 现在只有一个字符串 但我将添加更多变量 这是我第一次处理记录 所以这可能是一个愚蠢的问题 但是 为什么这有效 type TDataPipe record WindowTitle String 255 end var Dat
  • Typescript 自动获取类中的接口属性

    你好 TypeScript 专家 我有以下代码 但我必须在类中重复接口属性 否则我会得到 类错误地实现了接口 使用接口时 是否有 TypeScript 简写可以执行此操作而无需声明Id number 以及该类中的所有其他属性 谢谢 inte
  • AffineTransform 不变换 Stroke?

    使用 Graphics2D 时scale 具有两个不同参数的函数 在 x 和 y 方向按不同比例缩放 稍后在此 Graphics2D 对象上绘制的所有内容也会缩放 这会产生奇怪的效果 即在一个方向上绘制的线条比在另一方向上绘制的线条更粗 下
  • EF Code First:获取 DbContext 的所有 POCO 类型

    有没有办法从指定的 DbContext 实例获取 POCO 的类型 您需要访问元数据工作区 http msdn microsoft com en us library system data metadata edm metadatawor
  • 如何在 Windows 上使 add_custom_command 配置特定?

    为了在我的一个项目中运行单元测试 我有一个自定义命令 它将可执行文件 库和其他相关文件复制到其他位置 以便它们可以使用特定的设置运行 而不是在它们所在的位置运行它们建造的 在 Linux 上 这非常简单 但在 Windows 上 我遇到了一
  • 如何同时编辑单词的所有突出显示实例?

    在 Notepad 中 每当您选择 HTML 文档 或 CSS 中的任何单词时 类似的单词都会自动突出显示 是否有一个快捷方式可以用来一次编辑所有这些突出显示的片段 目前 Notepad 6 9 2 版本中尚未内置选择所有相似文本并进行编辑
  • 如何使用 pubsub 模拟器在本地调用 firebase Schedule 函数

    我正在研究云功能 尤其是日程功能 我需要每 5 分钟定期触发一个函数 但仅在测试步骤中 我需要在 pubsub 模拟器上运行它而不部署它 怎么做 我尝试使用 firebase shell 但它只触发一次 exports scheduledF
  • 如何在 Windows 上安装和使用 cURL? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我无法在 Windows 上运行 cURL 我已经从以下位置下载了 cURL zip 文件here https curl haxx se
  • 通过 Firebase 动态链接传递多个参数 Android

    我使用了 Firebase Dynamics 链接 它可以打开我的应用程序 转到 Play 商店或转到 URL 但是当我通过链接传递一些参数时 我只能获取第一个参数 这是我的动态链接 https xx app goo gl link htt
  • 从其他库重新导出共享库符号 (OS X / POSIX)

    我的问题是 OS X on x86 64 特定的 但更值得赞赏的是适用于其他 POSIX 操作系统的通用解决方案 给定一些共享库 下面称为原始库 的符号名称列表 我希望我的共享库重新导出这些符号 重新导出 就像有人尝试根据我的库解析符号一样
  • 如何在 C# 中通过 VLC api 流式传输视频

    我正在从事视频广播的小型家庭项目 我找到了一些例子Example http csharpmagics blogspot com 但它不起作用 因为需要旧版本的库0 8 6 所以我找到了它 但是当我尝试从 API 获取组件时 我对非托管代码有
  • java.nio.file.FileAlreadyExistsException如何在java7中解决这个问题

    我正在编写代码 我正在使用 java nio api 创建一个目录 我的代码段是 Path target Paths get folder path xx 0 Set
  • 如何从 vue-router 访问 vuex getter 并设置守卫?

    我正在尝试使用 Vue 进行操作 但遇到了一些麻烦 1 我无法从 router index js 文件访问我的 getters 我可以访问它 但它像带有返回函数的函数一样返回 我无法调用并获取值 2 我无法正确设置守卫 使用 Angular
  • 将 Sparkline htmlwidget 包含在 Shiny 应用程序的数据表单元格中,而无需诉诸(太多)JavaScript

    我正在使用sparkline包生成条形图并将其放入单元格中datatable在闪亮的应用程序中 我已经成功地在独立的环境中产生了所需的输出datatable 但是当我将其放入 Shiny 应用程序时 它不起作用 这可能与如何进行有关spk
  • 如何将普通锚链接与react-router一起使用

    非常类似于这个有角度的问题 https stackoverflow com questions 14712223 how to handle anchor hash linking in angularjs 使用react router时如