HistoryART
@HistoryART
^Спасибо - отметить ответом

Как получить текущий роут?

Добрый день. У меня проблема с роутами, не могу реализовать переключение формы без EXACT, но если я пишу exact при перезагрузке страницы на другом роуте форма пропадает. Скажите пожалуйста как мне получить текущий роут для формирования ссылок для формы по типу /:page/register - регистрация and /:page - авторизация.

Вот что у меня есть сейчас:

import { BrowserRouter as Router, Route, Switch, useRouteMatch, useParams } from "react-router-dom";
import CreateForm from "./createForm";
import React from "react";

export default function FormRouter() {

    const url = useRouteMatch().path;

    return (

        <Router>

            <Switch>
                <Route exact path={`${url}`}>
                    <CreateForm id='authenticate' method='POST' link={url} action='/' title='Войти в систему:' formType={1} />
                </Route>
                <Route exact path={`${url}register`}>
                    <CreateForm id='register' method='POST' link={url} action='/register' title='Регистрация в системе:' formType={2} />
                </Route>
            </Switch>

        </Router>

    )

}


Здесь собираю приложение

import React from 'react';

import Header from './header/header';
import Footer from "./footer/footer";
import GetCompanyPage from "./companyPage/company";
import {BrowserRouter as Router, Route, Switch} from "react-router-dom";

export default function App() {
    return (
        <div>

            <Router>

                <Header />

                <Switch>
                    <Route path='/company'>
                        <GetCompanyPage name={
                            {
                                firstChild: 'Омега',
                                lastChild: 'Пласт'
                            }
                        } title='ПРОИЗВОДИТЕЛЬ ИЗДЕЛИЙ ИЗ ПЛАСТИКА' />
                        <Footer />
                    </Route>
                </Switch>

                <Footer />

            </Router>
        </div>
    );
}
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
Wondermarin
@Wondermarin
import { BrowserRouter as Router, Route, Switch, withRouter } from "react-router-dom";
import CreateForm from "./createForm";
import React from "react";

function FormRouter({ location }) {

    const url = location.pathname;

    return (

        <Router>

            <Switch>
                <Route exact path={`${url}`}>
                    <CreateForm id='authenticate' method='POST' link={url} action='/' title='Войти в систему:' formType={1} />
                </Route>
                <Route exact path={`${url}/register`}>
                    <CreateForm id='register' method='POST' link={url} action='/register' title='Регистрация в системе:' formType={2} />
                </Route>
            </Switch>

        </Router>

    )

}

export default withRouter(FormRouter);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 мар. 2020, в 10:09
500 руб./в час
30 мар. 2020, в 09:48
120000 руб./за проект
30 мар. 2020, в 09:33
10000 руб./за проект