Я создаю приложение с ReactJS, которое имеет модуль входа в систему и будет иметь систему ролей. В данный момент я нахожусь в части входа в систему, но у меня есть ошибка, которая не позволяет мне продолжить.
Я сохраняю имя пользователя, которое регистрируется в localStorage с именем authenticatedUser, но оно никогда не сохраняется Я заметил, что если я получу history.pu sh ..... localStorage.setItem()
не работает. Кто-нибудь знает, почему это происходит или как я могу это решить? Я оставляю свой код:
Логин:
import React, { useState } from 'react';
import { Form, Button } from 'react-bootstrap'
import { useHistory, Link } from "react-router-dom";
import { AuthenticationService } from '../services/AuthenticationService.js'
import '../assets/css/Login.css'
export const Login = () => {
const history = useHistory();
const initialValues = {
userName: '', password: ''
};
const [values, setValues] = useState(initialValues);
function loginClicked(e) {
if (values.userName === 'a@a.a' && values.password === 'a') {
AuthenticationService.registerSuccessfullLogin(values.userName);
history.push({
pathname: '/welcome',
state: { name: values.userName }
});
} else {
e.preventDefault();
alert("Parametros incorrectos");
}
}
return (
<div className="login">
<Form onSubmit={(e) => loginClicked(e)}>
<Form.Group controlId="formBasicEmail">
<Form.Label>Email</Form.Label>
<Form.Control
type="email"
placeholder="Enter email"
value={values.userName}
onChange={({ target: { value } }) => setValues({ ...values, userName: value })}
/>
</Form.Group>
<Form.Group controlId="formBasicPassword">
<Form.Label>Password</Form.Label>
<Form.Control
type="password"
placeholder="Password"
value={values.password}
onChange={({ target: { value } }) => setValues({ ...values, password: value })}
/>
</Form.Group>
<Form.Group controlId="formBasicCheckbox">
<Form.Check type="checkbox" label="Recordar usuario" />
</Form.Group>
<div className="boton">
<Button variant="primary" type="submit">
Ingresar
</Button>
</div>
<div>
<Link to="/registry" className="financionacion-link">
No estas registrado? Registrate!
</Link>
</div>
</Form>
</div>
);
}
AuthenticationService (где я делаю setItem):
export const AuthenticationService = {
registerSuccessfullLogin(userName) {
localStorage.setItem('authenticatedUser', userName);
},
logout(userName) {
localStorage.removeItem('authenticatedUser');
},
isUserLoggedIn() {
let user = localStorage.getItem('authenticatedUser')
if (user === null) return false
return true
}
}
Когда я останавливаю программу сразу после установки имени Я вижу, что переменная прибывает нормально, и если я смотрю на хранилище в тот момент, переменная сохраняется. Но когда файл history.pu sh готов, хранилище стирается.
Изображение 1:
Изображение 2: