Reactjs 如何使用React路由器4正确重定向?

Reactjs 如何使用React路由器4正确重定向?,reactjs,redirect,react-router,react-router-v4,Reactjs,Redirect,React Router,React Router V4,有点背景。我正在使用Firebase身份验证(GitHub、Twitter和Facebook),当用户获得身份验证时,应用程序应该从SocialButtonList组件重定向到Updater组件 authHandler = authData => { if (authData) { <Redirect to='/updater' /> console.log('AUTHENTICATED'); } else { console.info('Use

有点背景。我正在使用Firebase身份验证(GitHub、Twitter和Facebook),当用户获得身份验证时,应用程序应该从
SocialButtonList
组件重定向到
Updater
组件

authHandler = authData => {
  if (authData) {
    <Redirect to='/updater' />
    console.log('AUTHENTICATED');
  } else {
    console.info('User is signed out!');
  }
}
现在,当用户获得身份验证时,我尝试使用Redirect
to:string
,但由于某些原因无法工作,可能是我误解了文档

我的顶级容器

const App = () => {
  return (
    <Router>
      <div>
        <Switch>
          <Route path='/updater' component={Updater} />
          <Route exact path='/' component={Login} />
          <Route component={NoMatch}/>
        </Switch>
      </div>
    </Router>
  ); 
}
在控制台中,我可以看到
AUTHENTICATED
消息,但应用程序不会重定向。如何正确重定向到
更新程序
组件


更新我找到了一种使用
和路由器
重定向的方法。请参阅下面答案部分中的我的答案。

好吧,我是使用
with router
找到我的答案的,而不是
重定向

import { withRouter } from 'react-router-dom';
...
authHandler = authData => {
  if (authData) {
    //<Redirect to={Updater} />
    this.props.history.push('/updater');
    console.log('AUTHENTICATED');
  } else {
    console.info('User is signed out!');
  }
}
...
export default withRouter(SocialButtonList);
从“react router dom”导入{withRouter};
...
authHandler=authData=>{
if(authData){
//
this.props.history.push('/updater');
console.log('AUTHENTICATED');
}否则{
console.info('用户已注销!');
}
}
...
使用路由器导出默认值(SocialButtonList);
这将成功重定向到更新程序组件

authHandler = authData => {
  if (authData) {
    <Redirect to='/updater' />
    console.log('AUTHENTICATED');
  } else {
    console.info('User is signed out!');
  }
}
现在我想知道,有没有办法让
重定向
正常工作?

看看这个-基本上如果你需要重定向,你要确保你渲染了重定向!或者,您可以使用路由器的
,访问历史记录