Не найденная страница и домашняя страница по умолчанию всегда перенаправляют на домашнюю страницу - React Router - PullRequest
0 голосов
/ 28 марта 2020

У меня есть этот код, и я всегда ставлю несуществующий маршрут, который он перенаправляет на дом. Я хочу, чтобы при несуществующем маршруте ввод перенаправлялся на /404, а при вводе ничего или / он перенаправлялся на дом.

            <Switch>
                <Route exact path="/badges" component={Badges} />
                <Route exact path="/badges/new" component={NewBadge} />
                <Route path="/404" component={NotFound} />
                <Route path="/" component={Home} />
                <Redirect from="*" to="/404" />
            </Switch>

Ответы [ 3 ]

2 голосов
/ 28 марта 2020

Используйте точную опору в вашем домашнем маршруте.

            <Route exact path="/" component={Home} />
1 голос
/ 28 марта 2020

Я думаю, вы можете сделать это:

<Switch>
    <Route exact path="/badges" component={Badges} />
    <Route exact path="/badges/new" component={NewBadge} />
    <Route exact path="/" component={Home} />
    <Route component={NotFound} />
</Switch>
1 голос
/ 28 марта 2020

Я бы добавил <Route> компонент без предоставления path, который должен перенаправить на 404 один.

Попробуйте следующее:

<Switch>
    <Route exact path="/badges" component={Badges} />
    <Route exact path="/badges/new" component={NewBadge} />
    <Route path="/404" component={NotFound} />
    <Route path="/" component={Home} />
    <Route component={NotFound} />
</Switch>

Надеюсь, это поможет!

...