Перенаправление в react-router-dom изменяет URL, но не отображает компонент

#reactjs #react-router

#reactjs #react-router

Вопрос:

Я хочу перенаправить свое приложение с «/» на «/ login» с помощью перенаправления.

Вот мой код:

 import React, { Component } from 'react'
import { Route, Switch, Redirect, withRouter } from 'react-router-dom'
import Login from './Login'

@withRouter
export default class Routes extends Component {
  render() {
    return (
      <>
        <Switch>
          <Redirect exact from="/" to="/login" />
          <Route path="/login" component={Login} />
        </Switch>
      </>
    )
  }
}
 

При первом изменении URL-адреса рендеринга, но компонент {Login} не отображается.

НО когда я перезагружаю страницу, рендеринг компонента {Login} и все работает правильно.

(для получения дополнительной информации) Этот компонент вложен в маршрутизатор с поддержкой истории.

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

ОТРЕДАКТИРОВАНО: удалить ‘push’ из перенаправления, все еще не работает

Комментарии:

1. удалить push из <Redirect exact from="/" to="/login" /> .

2. удалено, но все еще не работает

3. Сделайте минимально воспроизводимый код. В противном случае никто не сможет увидеть, что происходит, и может только догадываться. Попробуйте codesandbox.io

4. вы пытались написать <Route path="/login"> <Login /> </Route> и посмотреть, работает ли это?

5. он уже должен работать. Я думаю, это может иметь какое-то отношение к вашему wthRouter или чему-то еще. Вы можете увидеть эту простую рабочую песочницу в качестве ссылки