Это нормальный способ управления пользовательским состоянием пользователя RN-router-flux? - PullRequest
0 голосов
/ 27 октября 2019

Мне интересно, является ли это подходящим способом обработки пользовательского состояния авторизации в моем приложении. Я использую избыточную конфиденциальную информацию для хранения токенов аутентификации и другой информации о пользователе, чтобы при закрытии приложения и повторном входе ему не приходилось повторно входить в систему. Вот странность по этому поводу, я на самом деле не перемещаю пользователя на домашнюю страницу после входа в систему или обратно для входа после выхода из системы. Вместо этого я использую переменную состояния 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);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...