javascript - React-router-dom v6 仅渲染默认路由

标签 javascript reactjs react-router-dom vite

我正在使用 React Router Dom v6 开始一个新项目,但我在第一步中遇到了麻烦:为应用程序设置路由。

我刚刚创建了两个页面:AuthPage 和 DashboardPage,如果我从浏览器导航到:

  • localhost:PORT/:应该呈现 DashboardPage
  • localhost:PORT/auth:应该呈现 AuthPage

但是,即使我尝试导航到不存在的路线,唯一呈现的页面是 DashboardPage。

这是我到目前为止的代码:

main.tsx

import { createRoot } from 'react-dom/client'
import { MemoryRouter as Router } from 'react-router-dom'
import { ThemeProvider } from '@mui/material/styles'
import { theme } from './theme'
import App from './App'

const root = createRoot(document.getElementById('root') as HTMLElement)

root.render(
  <ThemeProvider theme={theme}>
    <Router>
      <App />
    </Router>
  </ThemeProvider>
)

应用程序.tsx

import { Route, Routes } from 'react-router-dom'
import AuthPage from './pages/AuthPage'
import DashboardPage from './pages/DashboardPage'
import NotFoundPage from './pages/NotFoundPage'
import { routes } from './routes'

function App() {
  return (
    <Routes>
      <Route path={routes.dashboard.url} element={<DashboardPage />} />
      <Route path={routes.auth.url} element={<AuthPage />} />
      <Route path={routes.notFound.url} element={<NotFoundPage />} />
    </Routes>
  )
}

export default App

路线.ts

export const routes = {
  auth: {
    url: '/auth'
  },
  dashboard: {
    url: '/'
  },
  notFound: {
    url: '*'
  }
}

最佳答案

使用BrowserRouter而不是MemoryRouter:

import { createRoot } from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import { ThemeProvider } from '@mui/material/styles'
import { theme } from './theme'
import App from './App'

const root = createRoot(document.getElementById('root') as HTMLElement)

root.render(
  <ThemeProvider theme={theme}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </ThemeProvider>
)

关于javascript - React-router-dom v6 仅渲染默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73511853/

相关文章:

Javascript:有没有明确的方法来判断两个整数之和是否大于 max int?

reactjs - 使用 Highcharts 和 React 创建条形图 - 出现错误,找不到渲染 div

reactjs - 如何通过 react-redux ,withRouter 在 react 中使用 refs?

react-router - React Router - 嵌套的 <Switch> 组件是反模式吗?

javascript - 使用 React Router 6 导航时恢复滚动位置

javascript - 使用ajax更改谷歌图表类型

javascript - 在 Array.map 函数中使用 await

javascript - Dust.js 转义字符

javascript - 将天数添加到状态中保存的日期

javascript - 为什么我的 React 应用程序的 Chrome 控制台中 d3 未定义?