archi_kud
@archi_kud
Frontend Developer

Как сделать route для 404 страницы?

Здравствуйте, я сделал Route для 404 страницы, но он не работает как надо.

Вот так выглядит Switch:
<Switch>
    <Route path = '/'>
       <BigComponent>
           <Switch
               <Route path = '/contacts' component = { ContactsPage } />
               <Route path = '/payment' component = { PaymentPage } />
           </Switch>
       </BigComponent>
    </Route>
    <Route component = { NotFoundPage } />
</Switch>


Проблема в том, что если я переду например по пути /asd, то BigComponent появится. Если добавлю exact в первый Route, то contacts и payment не будут работать. Мне нужно, чтобы все пути кроме /, /contacts, /payment подгружали NotFoundPage.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
hzzzzl
@hzzzzl
можно в свитч положить третий роут, что-то в духе

<Switch>
  <Route path = '/contacts' component = { ContactsPage } />
  <Route path = '/payment' component = { PaymentPage } />
  <Route render={() => { return <Redirect to="/" />; }} />
</Switch>


должно сработать, но как-то так себе, что дочерний компонент будет делать редиректы

или такое
<Route path="/(contacts|payment)/" component={BigComponent /} />

https://stackoverflow.com/a/43877138
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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