react重定向,网络上大多是介绍Redirect的使用,然而本人使用过后,发现Redirect似乎有一些限制:

(1)不能改变重定向地址的域名,比如下方的:
a.test.com => b.test.com

(2)在ant design pro 这种工程中,如果限定了前缀路径,则重定向时Redirect甚至不能更改前缀,比如下方这种固定了前缀为 /user 的url,Redirect添加了 to="/login" ,则重定向后,url会变成如下的样子:
a.test.com/user/ => a.test.com/user/login
而不是我期望的
a.test.com/user/ => a.test.com/login

那应该如何才能跳转到期望的地址呢?

以下是我在ant design pro中解决的方法

原地址为 http://a.test.com/per
目标地址为 http://b.test.com/login

把原来用 Redirect 的地方

import { Redirect } from 'umi';
<Redirect to={`/login`} />;

改成如下形式

import { Route } from 'umi';
const REDIRECT_URL = 'http://b.test.com/login';
<Route component={() => { window.location.href = `${REDIRECT_URL}`; return null;} }/>;

如果你不是在 ant design pro 中遇到此问题,也可以直接使用 react-router中同样的方法实现

以上是我的解决办法,如果有错误或者描述不当的地方,欢迎大家批评指正,谢谢

前言react重定向,网络上大多是介绍Redirect的使用,然而本人使用过后,发现Redirect似乎有一些限制:(1)不能改变重定向地址的域名,比如下方的:a.test.com =&gt; b.test.com(2)在ant design pro 这种工程中,如果限定了前缀路径,则重定向时Redirect甚至不能更改前缀,比如下方这种固定了前缀为 /user的url,Redirect添加了 to="/login",则重定向后,url会变成如下的样子:a.test.com/user/ =&gt; react路由重定向官方文档说明 render 属性:是一个函数prop,用于指定要渲染的内容 Redirect 组件用于实现路由重定向,to 属性指定要跳转到的路由地址 <Route exact path="/home" component={Index} /> <Route exact path="/" render={() => <Redirect to="/home" />} /> 如下代码逻辑说明: 当进来到页面中是默认路由的
正如我们所知,react-router是用来管理路由的,,在路由管理中,一个非常重要的功能就是重定向,下面列举一些react-router实现重定向的方法 1. 使用Route组件中继承自Router组件的props.history 2. 使用react-router-dom里面的useHistory() 3. 使用react-router-dom里面的Redirect组件
React Native跳转微信、支付宝等第三方APP一、常用URL SchemeQQ: mqq:// 微信: weixin:// 新浪微博: weibo:// (sinaweibo://) 腾讯微博: tencentweibo:// 淘宝: taobao:// 支付宝: alipay:// 美团: imeituan:// 知乎: zhihu:// 优酷: youku://二、配置S
import { HashRouter,BrowserRouter, Route,Router, Link, Redirect, Switch} from "react-router-dom"; import Header from './components/Header'; import Login from './page/Login/index'; import Register from './page/Log
这里踩到一个隐性问题,先描述问题: 问题:/home,跳转到/details,然后home有代码设定home?id=123456,会获取id,执行请求并跳转到/details,(你们不需提出流程问题,项目相关业务与场景不便解释说明),问题来了, 我在home的index.tsx下面有是处理以前的地址正确跳转项目新地址,导致在其他页面输入home?id=123456,触发了重定向,就id丢失了,导致我在home怎么都拿不到id,因为地址输入正常,完全没想到会触发重定向 处理:在重定向继承url参数即可
前两天同学做了一个登陆功能的API,放置在他的服务器上。我想在本地对接一下,就涉及到跨域问题。 跨域(Cross Origin) 跨域问题源自Web的跨源安全策略(同源策略)。默认情况下XHR对象只能访问同源的资源,这里的“同源”包括: 协议(Protocol)相同 端口(Port)相同 主机(Host)相同 协议 主机 端口 http://store.company.com:81/ 这样的策略可以保证安全性,但给开发者造成了一定麻烦。解决该问题的根本方法是CORS(跨院资源
重定向: import {BrowserRouter as Router,Link,Route,Redirect,Switch} from 'react-router-dom' 类似于方法,设置好后自动执行 <Redirect to='路由路径' ></Redirect> this.props.history.push('路...
要使用Google第三方登录,需要使用Google OAuth 2.0进行身份验证和授权。以下是使用React实现Google第三方登录的一般步骤: 1. 在Google Cloud Console中创建OAuth 2.0客户端ID。在“授权回调URI”字段中添加您的React应用程序的URI。 2. 在React应用程序中安装Google登录库。可以使用“react-google-login”或“react-google-button”等库。 3. 在React组件中使用Google登录组件。您需要设置客户端ID和授权回调URI等属性。 4. 实现Google登录回调函数。当用户成功登录并授权访问您的应用程序时,将调用此函数。您可以在此函数中处理用户信息和JWT令牌等内容。 5. 存储JWT令牌。您可以将JWT令牌存储在浏览器的localStorage或cookie中,以便将来使用。 6. 实现注销功能。当用户注销时,您需要删除存储的JWT令牌,并将用户重定向到登录页面。 需要注意的是,Google OAuth 2.0需要使用HTTPS协议进行通信。因此,在生产环境中,您需要使用SSL证书来启用HTTPS。