小编典典

React-Router 外部链接

all

由于我使用 react-router 在 react 应用程序中处理我的路由,我很好奇是否有办法重定向到外部资源。

说有人打:

example.com/privacy-policy

我希望它重定向到:

example.zendesk.com/hc/en-us/articles/123456789-Privacy-Policies

我发现完全零帮助避免在我的 index.html 加载时用普通 JS 编写它,例如:

if ( window.location.path === "privacy-policy" ){
  window.location = "example.zendesk.com/hc/en-us/articles/123456789-Privacy-Policies"
}

阅读 129

收藏
2022-06-08

共1个答案

小编典典

我实际上最终构建了自己的组件。<Redirect> 它从react-router元素中获取信息,因此我可以将其保留在我的路线中。如:

<Route
  path="/privacy-policy"
  component={ Redirect }
  loc="https://meetflo.zendesk.com/hc/en-us/articles/230425728-Privacy-Policies"
  />

这是我的组件以防万一 - 任何人都很好奇:

import React, { Component } from "react";

export class Redirect extends Component {
  constructor( props ){
    super();
    this.state = { ...props };
  }
  componentWillMount(){
    window.location = this.state.route.loc;
  }
  render(){
    return (<section>Redirecting...</section>);
  }
}

export default Redirect;

编辑——注意:这是react-router: 3.0.54.x 中的,它不是那么简单

2022-06-08