首页 > 解决方案 > 除非刷新页面,否则 React Router 不会显示匹配的组件

问题描述

我的应用程序在单击按钮时将用户重定向到不同的路由,但不会呈现具有匹配路由的组件,除非页面被刷新。我最近重构了我的应用程序以使用 Redux Toolkit,并更新了我的依赖项,现在遇到了路由问题。

这是我的相关依赖项列表和我的路线设置:

"dependencies": {
    "@material-ui/core": "^4.9.4",
    "@material-ui/icons": "^4.9.1",
    "react": "^16.13.0",
    "react-dom": "^16.13.0",
    "react-redux": "^7.2.0",
    "react-router-dom": "^5.2.0",
    "react-scripts": "^4.0.3",
    "redux": "^4.0.5",
    "redux-thunk": "^2.3.0"
}

// App.js
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'

<Router>
    <NavBar />
        <div>
            <Switch>
              <Route exact path='/' component={Home} />
              <Route path='/login' component={Login} />
              <Route path='/signup' component={Signup} />
            </Switch>
        </div>
</Router>

// NavBar
<Typography>
    <Button component={Link} to='/'>
      Home
    </Button>
</Typography>
<Button component={Link} to='/login'>Login</Button>
<Button component={Link} to='/signup'>Signup</Button>

// Login
<small>
    Don't have an account? Sign up{' '}
        <Router>
            <Link to='/signup'>here</Link>
        </Router>
</small>

// Signup
<small>
    Already have an account? Login{' '}
        <Router>
            <Link to='/signup'>here</Link>
        </Router>
</small>

发生错误行为的已知区域:

尝试的解决方案:

我究竟做错了什么?谢谢。

标签: reactjsreact-routermaterial-uiredux-toolkit

解决方案


推荐阅读