Reactjs 如何使用React路由器4正确重定向?
有点背景。我正在使用Firebase身份验证(GitHub、Twitter和Facebook),当用户获得身份验证时,应用程序应该从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
SocialButtonList
组件重定向到Updater
组件
authHandler = authData => {
if (authData) {
<Redirect to='/updater' />
console.log('AUTHENTICATED');
} else {
console.info('User is signed out!');
}
}
现在,当用户获得身份验证时,我尝试使用Redirectto: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!');
}
}
现在我想知道,有没有办法让重定向
正常工作?看看这个-基本上如果你需要重定向,你要确保你渲染了重定向!或者,您可以使用路由器的,访问历史记录