我尝试history.push()在设置令牌后使用。不知何故,页面没有重定向到新路径。我已经使用了useHistory访问历史记录的功能。一旦我重新加载页面,它就会重定向到主页。我尝试了其他类型的黑客但无法找到解决方案。请帮忙。
应用程序.js
function App() {
const [isAuthenticated, setAuthenticated] = useState(false);
useEffect(()=>{
if(cookie.get('authorization')){
setAuthenticated(true);
}
else{
setAuthenticated(false);
}
},[])
return (
<Router>
<Switch>
<Route exact path="/">
{isAuthenticated?<Redirect to="/home"/>:<Login />}
</Route>
<PrivateRoute exact path="/user/:id" component={UserDetail} auth={isAuthenticated} />
<PrivateRoute exact path="/createuser" component={CreateUser} auth={isAuthenticated} />
<PrivateRoute exact path="/home" component={ListUser} auth={isAuthenticated} />
</Switch>
</Router>
);
}
export default App;
登录.js
import React, { useEffect, useState } from 'react';
import {useHistory} from 'react-router-dom';
function Login() {
const history = useHistory();
const loginUser = (body) => {
SetLoader(true);
fetch('/api/v2/users/tokens', {
method: 'POST',
body: JSON.stringify(body),
headers: {
'Content-Type': 'application/json',
}
})
.then(response => {
SetLoader(false);
if (response.status == 200) {
SetError(false);
cookie.set('authorization',response.headers.map.authorization,{path:'/'});
history.push('/');
}
else {
SetError(true);
StoreResponse(JSON.parse(response._bodyInit).message);
}
})
.catch((error) => {
console.error('Error:', error);
});
}
}
export default Login;
慕田峪7331174
相关分类