React 使用 Redirect 进行重定向时浏览器报错问题

React 使用 Redirect 进行重定向时浏览器报错问题

1.我们在项目中有非常多的地方需要使用路由的重定向,这个时候就要使用到 Redirect组件进行路由重定向。但是使用的时候会发现,浏览器会报错:: You tried to redirect to the same route you’re currently on: “/home” 类似这样的错误。但是还是能达到效果,就是会有一个报错信息。下面来解决这个错误

原写法:
		<div className="Home">
				<h3>主页</h3>
				<div className="Home-nav">
					{
					   this.state.msg.map((item,index)=>{
						   return (<Link key={index} to={item.url} className={this.state.Index===index? "Home-nav-item active-nav-item" : "Home-nav-item"} onClick={()=>{this.changeIndex(index)}} >{item.title}</Link>)
					   })
				   }
				</div>
				<div>
						<Route path="/alibaba" exact component={Alibaba} />
						<Redirect  from='/' to={'/alibaba'}  />
				</div>
			</div>

希望页面一进去就默认跳转到 Alibaba组件。 这样写就会有上述的错误报出。
解决写法:

			<div className="Home">
				<h3>主页</h3>
				<div className="Home-nav">
					{
					   this.state.msg.map((item,index)=>{
						   return (<Link key={index} to={item.url} className={this.state.Index===index? "Home-nav-item active-nav-item" : "Home-nav-item"} onClick={()=>{this.changeIndex(index)}} >{item.title}</Link>)
					   })
				   }
				</div>
				<div>
					<Switch>
						<Route path="/alibaba" exact component={Alibaba} />
						<Redirect  from='/' to={'/alibaba'}  />
					</Switch>
				</div>
			</div>

将route组件都放入switch内并且将redirect组件放到最后,这样就不会报错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值