栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用React Router重定向页面的最佳方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用React Router重定向页面的最佳方法是什么?

实际上,这取决于您的用例。

1)您想保护您的路线免受未经授权的用户的侵害

如果是这种情况,则可以使用称为的组件,

<Redirect />
并可以实现以下逻辑:

    import React from 'react'    import  { Redirect } from 'react-router-dom'    const ProtectedComponent = () => {      if (authFails)        return <Redirect to='/login'  />      }      return <div> My Protected Component </div>    }

请记住,如果您想

<Redirect />
按预期的方式工作,则应将其放在组件的render方法中,以便最终应将其视为DOM元素,否则它将无法工作。

2)您要在执行某项操作后进行重定向(例如,创建项目后)

在这种情况下,您可以使用历史记录:

    myFunction() {      addSomeStuff(data).then(() => {          this.props.history.push('/path')        }).catch((error) => {          console.log(error)        })

要么

    myFunction() {      addSomeStuff()      this.props.history.push('/path')    }

为了访问历史记录,您可以使用名为的HOC包装组件

withRouter
。当您用它包装您的组件时,它会通过
match

location
并进行
history
支撑。有关更多详细信息,请参阅withRouter的官方文档。

如果你的组件是一个的子

<Route />
组件,即如果是这样
<Route path='/path' component={myComponent}/>
,你不必换用您的组件
withRouter
,因为
<Route />
传球
match
location
history
它的孩子。

3)单击某些元素后重定向

这里有两个选择。您可以

history.push()
通过将其传递给
onClick
事件来使用:

<div onClick={this.props.history.push('/path')}> some stuff </div>

或者您可以使用一个

<link />
组件:

 <link to='/path' > some stuff </link>

我认为这种情况的经验法则是首先尝试使用

<link />
,我想尤其是因为性能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号