【问题标题】:React: when user visits from other url - redirect him to right url反应:当用户从其他网址访问时 - 将他重定向到正确的网址
【发布时间】:2017-07-12 13:58:48
【问题描述】:

对于我们的详细信息页面,我们设置了路线

/d/:id

问题是,许多外部页面的页面上都有我们的旧 ID 和链接,例如 /old/:id

如何在我们的应用程序中将它们重定向到正确的路线? 问题是,它们的 id 是外部页面所拥有的,而不是我们现在使用的那些。但是他已经有一个用于这些重定向的映射数组。

那么用 react 来做这件事的最好方法是什么? 用户来自 /old/:id(:-slug) -> goto /d/:id 并具有新 id。

提前致谢。

【问题讨论】:

  • 你在用 react-router 吗?
  • 是的。我们正在使用反应路由器

标签: javascript reactjs url redirect mapping


【解决方案1】:

更详细一点,想象一下您的映射数组如下所示:

var mapping_array = [{ old_id: 1, new_id: 2}, {old_id: 2, new_id: 3}]

你可以试试这个:

var redirects = mapping_array.map(function(mapping) {
  return <Redirect from={'/d/' + mapping.old_id} to={'/d/' + mapping.new_id} />
});

然后在您定义路线的地方添加:

<Router>
     ... //existing routes and configuration
        {redirects}
</Router>

【讨论】:

  • 谢谢。它有效:) 现在我唯一的问题是,有时客户也使用 /old/id-slug.. 但我会找到一种方法来摆脱 slug
【解决方案2】:

您可以按照文档中的说明在 react-router 中使用 Redirect 组件:

https://github.com/ReactTraining/react-router/blob/master/docs/API.md#redirect

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 2018-03-13
    • 2018-10-25
    • 2013-05-22
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多