为什么我们需要渲染组件以在react-router中发出重定向?

时间:2018-08-02 15:08:53

标签: reactjs react-router

在react-router v4中,我们现在需要使用组件将用户重定向到其他地方。

虽然在构建路由组件时有意义(因此路由可以发出重定向),但是当您遇到错误并且必须重定向到某个地方或在用户操作后重定向(这不是简单的链接)时,这很奇怪点击)。

除了链接相似的路由之外,重定向也是一种反应性的动作,那么为什么没有API方法进行重定向,而只有一个组件?

1 个答案:

答案 0 :(得分:1)

在某些情况下,<Redirect />非常好用。

但这不是必须的。

在很多情况下,我创建了“程序重定向”,您可以使用道具中的“历史记录”。

this.props.history.push('/dashboard')

如果您无法在道具中访问“历史记录”,因为您的组件未在路线内呈现。

您可以使用助手withRouter

import {
  withRouter
} from 'react-router-dom'

,然后用它包装您的组件,您就可以将历史记录作为道具进行访问。

const yourComponent = props => {
    // this.props.history is here

    return <div> dont care </div>;
}