reactjs - 验证后如何重定向到另一个页面?并且还想将值传递到下一页
问题描述
这是一个验证并返回一些数据的函数 ValidateUser
ValidateUser=(e)=>{
e.preventDefault();
axios.post('http://localhost/backend-mall-management/Login/Validate.php',this.state)
.then(res => {
if(res.data){
var Username=res.data.Username;
var User_Id=res.data.User_Id;
var Name=res.data.Name;
var Email=res.data.Email;
if(Username=='admin' || Username=='admin1' || Username=='admin2'){
*From here I want the next page to render say AdminPage.*
}
else{
*Also here I want the next page to render say ManagrePage.*
}
}else{
alert("Invaild Username or Password!!");
this.setState({
Username:'',
Password:''
});
渲染有形式。
<input type="submit" name="sign-in" value="Sign In" onClick={this.ValidateUser}/>
这将调用 ValidateUser。所有组件都通过 App.js 呈现。它有这个用于路由。
<BrowserRouter >
<div className='App'>
<Switch>
<Route exact path='/' component={HomePage}/>
<Route exact path='/AdminPage' component={AdminPage}/>
</Switch>
</div>
</BrowserRouter>
解决方案
您需要使用历史记录以编程方式在您的应用程序内导航:
import { useHistory } from 'react-router-dom';
let history = useHistory();
...
if(Username=='admin' || Username=='admin1' || Username=='admin2'){
history.push('/AdminPage');
} else {
history.push('/'); // redirect to home page
}
推荐阅读
- php - 使用 php 计算中的变量更新 mysql 数据库表
- javascript - 无法将属性“innerHTML”设置为 null - 似乎没有什么可以修复它
- sql - 小型跟随系统。如何从列中选择两个不同的值
- spring-batch - 带有 Spring 批处理集成的 Seedstack
- macros - 生成嵌套模块错误的球拍宏
- bash - 试图理解`test的行为
` 在 Bash 中 - http - HTTP标头如何指示相对路径
- angular - Angular SSR - 无法读取未定义的属性“documentElement”
- django - 何时在 django 中为静态文件使用不同的服务器
- javascript - 收到以下错误无法读取 HTMLInputElement.onclick 处未定义的属性“值”