我想创建一个身份验证系统。我在提交时制作了一个表单,使用ajax响应发送用户凭据并接收令牌作为回报。现在我想在收到令牌后重定向到主页。
我使用的是react router 4,redux thunk中间件,我曾尝试在上下文中执行此操作,但没有成功。
onSubmit(e){
e.preventDefault();
this.setState({isLoading:true});
this.props.login(this.state).then(function(response){
console.log('token', response.data.token);
//Redirect to home component
});
}
只是对约翰尼上面所说的进行了扩展。这是react router文档中的一个很好的例子:
class Login extends React.Component {
state = {
redirectToReferrer: false
}
login = () => {
fakeAuth.authenticate(() => {
this.setState({ redirectToReferrer: true })
})
}
render() {
const { from } = this.props.location.state || { from: { pathname: '/' } }
const { redirectToReferrer } = this.state
if (redirectToReferrer) {
return (
<Redirect to={from}/>
)
}
return (
<div>
<p>You must log in to view the page at {from.pathname}</p>
<button onClick={this.login}>Log in</button>
</div>
)
}
}
所以你会:
//Redirect to home component
setState({loggedIn:true)}
在渲染函数中:
if (this.state.loggedIn) {
return (<Redirect to='/home')
}
为此,您可以使用重定向组件:https://reacttraining.com/react-router/web/api/Redirect
您可以有一个状态变量来指示用户是否已登录,并在用户登录后在then方法中将其设置为true。在render方法中,使用该状态控制重定向组件的渲染。
我想在单击登录页中的按钮后重定向到主页。但是,当我单击地址栏中的按钮时,主页的路径会显示出来(它重定向到主页)…但它不会呈现与该路径相关的组件。它仍然显示带有主页地址的登录页。因此,我必须刷新页面才能呈现主页。这里有什么问题??? 在我的登录页面中…这是我用于单击按钮的功能。。 在我的索引,js页面...
我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档
我意识到以前有人问过我这个问题,请容忍我,因为我还在学习这个问题。我想我已经尝试了所有的解决方案,但是没有运气。 问题是:当重定向到时,它没有呈现预期的组件() 我已经实现了一个,如下所示; privaterout.js 这就是我使用它的地方; index.js 在这个问题中要补充几点: 我确认重定向确实发生在(我通过将
我想在我的子组件中有一个默认路由(使用设置),并自动将参数传递给它。我在文档中找不到如何做到这一点。我有一个具有以下路由的父组件: 以及子组件,其具有: 这当然会失败:我无法弄清楚如何将一些默认参数传递给第一个路由。我确实通过创建另一个没有参数的路由并将其用作默认值来启动它: 但这当然并不理想。到目前为止,我还没有找到比使用不带参数的路由,然后使用一些默认参数立即重定向更好的方法。难道没有更好的办
首先,在get请求中,我显示一个表单,在提交表单时,它转到一个post url,在控制器中执行一些操作,然后返回另一个包含表单的视图。提交此表单后,我验证了一些内容,如果验证失败,我想重定向回一些错误,但不幸的是,laravel不允许我重定向回post方法。我有什么办法可以做到这一点吗? 我在laracast上看到过这个答案https://laracasts.com/discuss/channel
如果axios api为空或初始状态为空,如何有条件地重定向到页面。在下面的代码中,我使用axios更新状态,用户信息在状态中可用,但代码继续调用在循环中。我试图实现的是,如果userinfo状态最初为空,则重定向到登录页面并进行身份验证。 我能够重定向罚款,但问题是与连续循环。即使用户信息存储重定向被调用(发生在循环中)