Как выполнить функцию при запуске маршрутизатора Reacter - PullRequest
0 голосов
/ 23 марта 2020

Я использую пакет Reacter Router для создания и управления маршрутами моего приложения.

Я использую систему аутентификации OAuth, которая возвращает следующий URL-адрес моему приложению: http://localhost/login-meli?code=1234567890

Мне нужно каждый раз, когда этот маршрут с кодом запроса " "запускается для выполнения определенной функции, которая, например, может быть: console.log('It works!')

Я попробовал приведенный ниже код, и он работал, но я не нашел в документации, как я могу указать конкретный c запрос. Я также заметил, что при добавлении других строк кода возвращается ошибка.

<Route exact path="/login-meli" render={() => (
    console.log('works!!!')
)}/>

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете использовать хук useLocation из react-router-dom.

import { Route, useLocation } from "react-router-dom";

Затем в вашем маршруте:

const MyComponent = () => {
  const location = useLocation();
  const params = new URLSearchParams(location.search);
  const code = params.get('code');
  if (code === '123456789') {
    return (<div>It Works!!!</div>);
  } else {
    return (<div>404 (you can redirect to an error page</div>);
  }
}

Затем для вашего маршрутизатора:

<Route exact path="/login-meli"><MyComponent /></Route>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...