@historydev
Редактирую файлы с непонятными расширениями

Как совместить несколько роутеров?

Добрый день. У меня возникла проблема с роутингом, у меня есть меню вверху страницы, по нему я меняю компоненты приложения, сейчас есть дефолт (просто шапка и футер) и компания (между шапкой и футером компания появляется), а так-же есть форма с своим роутером. Не сложными манипуляциями я разделил их, но роутер формы перестал работать. Скажите пожалуйста где моя ошибка?

Роутер всего приложения (работает от меню в шапке (компонента ) из него я возвращаю меню с Link-ами)

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

            <Router>

                <Header />

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

                <Footer />

            </Router>
        </div>
    );
}


А вот роутер формы, да, вы будете правы если скажете мол напиши exact и будет работать, но в этом и прикол, exact насколько я понимаю принимает все роуты и при смене допустим на /register у меня не отображается компания, а при смене на компанию, пропадает форма

export default function FormRouter() {

    return (

        <Router>

            <Switch>
                <Route path="/" component={Authenticate} />
                <Route path="/register" component={Register} />
            </Switch>

        </Router>

    )

}

function Register() {
    return <CreateForm id='register' method='POST' action='/register' title='Регистрация в системе:' formType={2} />
}

function Authenticate() {
    return <CreateForm id='authenticate' method='POST' action='/' title='Войти в систему:' formType={1} />
}


Спасибо.
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
поменяйте местами Route в Switch, чтобы сначала /register срабатывал, а если там что-то другое, то уже сработает /
Сейчас у вас всегда будет / срабатывать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы