当前位置: 首页 > 知识库问答 >
问题:

是否将现有链接转换为react router?

史俊德
2023-03-14

使用react router时,必须对链路使用Link组件。我想将现有网站转换为reactjs web应用程序..html是从服务器生成的,包含传统链接...有没有办法将这些链路转换成react路由器链路组件?

共有1个答案

林蕴藉
2023-03-14

您不能直接翻译它们,因为它们在React范围之外。

您可以使用不同的方法,您需要两个不同的任务:

  1. 通过插入自定义事件处理程序修改本机(不是React生成的)链接行为
  2. 使用代码触发路由更改。

这可以通过使用一些Vanilla JS从React中完成,例如

class MyComponent extentds React.Component {
    componentDidMount() {
      document.querySelectorAll('a.your_external_links').forEach((a) => {
        a.addEventListener('click', (ev) => {
          ev.preventDefault();
          this.props.history.push("/new/url")
        });
      })
    }
}

请注意QuerySelectorAll调用:您需要找到选择所有本机链接的方法;可以在多个步骤(多个QuerySelectorQuerySelectorAllGetElementById调用)中执行此操作。

最后重要提示:清理!

必须在componentwillunmount中删除新的事件侦听器。

 类似资料:
  • 我刚反应过来。Im正在尝试将包含链接的数组转换成将在网站中按顺序显示链接的东西。 类似这样的事情: 在服务器中显示的内容如下所示: 我试着做我找到的下面的代码,但是它失败了:

  • 我试图转换,和链接从我的描述列,但我只能让他们中的1个工作的时候,我正在寻找的是解决方案多个条件。 以下是我目前拥有的将链接转换为可点击的标签的功能: 逻辑代码 如果说明中有链接,请转换为可点击(http/https) 假设我有以下字符串在我的数据库(描述列) 我从那个字符串得到的是下面的结果(基于我上面的代码) 有什么想法吗?

  • 因此,我想知道是否有一个利索的方法来做这件事,除了

  • 我有一个 JAR 文件,我需要将其转换为 OSGi 捆绑包。我没有JAR文件的原始源代码。 我尝试使用来自以下方面的答案:如何从jar库创建OSGi捆绑包? 但是,它们已经过时了。 编辑:我需要转换几个罐子,但数量固定。

  • 问题内容: 这是我的HTML: 如何使用JavaScript来使我的链接点的属性base64编码的网页,其来源是的? 除了在JavaScript中之外,我基本上想在这里进行相同的转换(选中了base64复选框)。 问题答案: 数据URI的特征 甲数据-URI与MIME类型必须是在其中一种格式: 不需要Base-64编码。如果您的代码包含非ASCII字符,例如,则必须添加。 必须转义以下字符: -F

  • 问题内容: 我在Java方面苦苦挣扎,但无法将Java .wav转换为.mp3转换器的有效示例。该转换器将在Java applet中使用,因此它应仅依赖以纯Java编写的库,而无需底层C代码调用。 谁能提供一个完整的示例? 谢谢 问题答案: 阅读您的wave文件@ http://java.sun.com/javase/technologies/desktop/media/jmf/ 并编码为mp3