Запустить функцию и перенаправить - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу иметь возможность набрать /logout в адресной строке браузера и после отправки сбросить локальное хранилище и перенаправить пользователя на /login.

Я представляю что-то вроде этого:

<Switch>
  <Route path="/logout">
    {clearAuthInLocalstorage()}
    <Redirect to="/login" />
  </Route>
</Switch>

Как правильно объявить это с react-router в Switch контейнере?

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете создать Logout компонент, а в componentDidMount ловушке жизненного цикла вы можете выполнить всю обработку

class Logout extends Component {
  state = { loading : true };
  componentDidMount = () => {
    // clear localStorage here 
    this.props.history.push('/login');
  };
  
  return (
    <div className="page">
       <i className="laoder fas fa-spinner fa-spin" />
    </div>
  );
}

<Switch>
  <Route exact path="/login" component={Login} />
  <Route exact path="/logout" component={Logout} />
</Switch>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...