我正在使用REACTION路由DOM V6启动一个新项目,第一步中的一个步骤遇到了麻烦:为应用程序设置路由.

我刚刚创建了两个页面:AuthPage和DashboardPage,如果从浏览器导航到以下位置,我希望能够呈现这两个页面:

  • 本地主机:port/:应呈现仪表板页面
  • 本地主机:端口/身份验证:应呈现授权页面

但是正确地说,不,唯一呈现的页面是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>
)

App.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

Routes.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相关问答推荐

设置默认值后动态更新japbox或调色板

使用JavaScript重命名对象数组中的键

reaction useEffect KeyDown for each 条目配音输出

JS生成具有给定数字和幻灯片计数的数组子集

RxJS setTimeout操作符等效

如何使用Echart 5.5.0创建箱形图

如何在表格上拥有水平滚动条,在正文页面上拥有垂直滚动条,同时还对html表格的标题使用位置粘性?

如何分配类型脚本中具有不同/额外参数的函数类型

过滤对象数组并动态将属性放入新数组

JQuery. show()工作,但. hide()不工作

如何修复(或忽略)HTML模板中的TypeScript错误?'

Angular 17—每当一个布尔变量变为真时触发循环轮询,只要它保持为真

在拖放时阻止文件打开

你怎么看啦啦队的回应?

连接到游戏的玩家不会在浏览器在线游戏中呈现

第三方包不需要NODE_MODULES文件夹就可以工作吗?

让chart.js饼图中的一个切片变厚?

按什么顺序接收`storage`事件?

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync

如何使用puppeteer操作所有选项