Мне интересно, является ли это подходящим способом обработки пользовательского состояния авторизации в моем приложении. Я использую избыточную конфиденциальную информацию для хранения токенов аутентификации и другой информации о пользователе, чтобы при закрытии приложения и повторном входе ему не приходилось повторно входить в систему. Вот странность по этому поводу, я на самом деле не перемещаю пользователя на домашнюю страницу после входа в систему или обратно для входа после выхода из системы. Вместо этого я использую переменную состояния loggedIn redux, чтобы определить способ визуализации моего компонента Router. Если значение равно false, пользователь перенаправляется на экран входа в систему, а если true, на главную страницу. Теперь причина, по которой я на самом деле не перемещаю пользователя на главную страницу после входа в систему и возвращаюсь к входу в систему после выхода из системы, заключается в том, что я получаю перекрывающиеся сцены. Что произойдет, если компонент «Маршрутизатор» выполнит повторную визуализацию, так как состояние авторизации изменилось с не вошедшего в систему и не вошедшего в систему, и наоборот, что автоматически направляет пользователя на главную страницу или обратно для входа в систему. Мне интересно, если это нормально, я не видел никаких проблем до сих пор, и это кажется надежным, но если у кого-то есть опыт не работает, пожалуйста, дайте мне знать.
Вотнемного моего кода из компонента роутера, чтобы вы могли видеть, о чем я говорю.
import React, {Component} from 'react';
import {connect} from 'react-redux';
import {Scene, Router} from 'react-native-router-flux';
class RouterComponent extends Component {
constructor(props) {
super(props);
}
renderRouter() {
const {loggedIn} = this.props;
if (loggedIn) {
return (
HOMEPAGE ROUTER
);
} else {
return (
LOGIN/REGISTRATION ROUTER
}
}
render() {
return (
<Router>{this.renderRouter()}</Router>
);
}
}
const mapStateToProps = state => {
return {
loggedIn: state.auth.loggedIn,
};
};
export default connect(mapStateToProps)(RouterComponent);