Updated from "react-router-dom": "^5.1.2" to "react-router-dom": "^6.3.0"
The app has a few Context.Providers just outside BrowserRouter, a 404 route, and a few implicit nested routes for a few pages (denoted by path not exact path)

代码:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App';
import { BrowserRouter, Routes, Route } from "react-router-dom";

ReactDOM.render(
        <App/>,
    document.getElementById('root')
    );

./components/App.js

import React, { useState } from "react";
import { BrowserRouter, Route, Routes } from "react-router-dom";
import TierA from "./TierA"
import TierB from "./TierB"
import Catalogue from "./Catalogue"
import Admin from "./Admin"
import NotFound from "./NotFound" // this is the 404 page component

import PlayerContext from "./Player/context"
import SearchContext from "./Search/context"
import { useSearch } from "../hooks/useSearch"


const App = () => {

    const searchText = useSearch()
    const [playerItem, setPlayerItem] = useState(null)

    return (
        <React.Fragment>
        <SearchContext.Provider value={searchText}>
        <PlayerContext.Provider value={{ playerItem, setPlayerItem }}>
        <BrowserRouter basename={process.env.PUBLIC_URL}>
                <Routes>
                    <Route element={TierA} exact path="/a_tier" />
                    <Route element={TierB} exact path="/b_tier" />
                    <Route element={Catalogue} path="/catalogue" />
                    <Route element={Admin} path="/admin" />
                    <Route element={NotFound} path="*" /> 
                </Routes>
            </BrowserRouter>
        </PlayerContext.Provider>
        </SearchContext.Provider>
        </React.Fragment>
    )
}


export default App;

Before updating to react-router-dom v6, the old version used to render the 404 page when hitting the base / route and the named routes rendered correctly.
Now, hitting any of the routes above shows a blank page, no warnings or errors stand out in console Please advise, thanks in advance

使用npm启动运行

"scripts": {
    "start": "react-scripts start",
...

推荐答案

react-router-dom@6年,Route组件API/语法发生了重大变化.elementprops 采用ReactNode,又名JSX.将React组件作为JSX传递.

例子:

<BrowserRouter basename={process.env.PUBLIC_URL}>
  <Routes>
    <Route element={<TierA />} path="/a_tier" />
    <Route element={<TierB />} path="/b_tier" />
    <Route element={<Catalogue />} path="/catalogue" />
    <Route element={<Admin />} path="/admin" />
    <Route element={<NotFound />} path="*" /> 
  </Routes>
</BrowserRouter>

Javascript相关问答推荐

是否有方法在OpenWeatherMap API中获取过go 的降水数据?

如何在使用fast-xml-parser构建ML时包括属性值?

使用axios.获取实时服务器时的404响应

Google Apps脚本中的discord邀请API响应的日期解析问题

google docs boldText直到按行执行应用脚本错误

PDF工具包阿拉伯字体的反转数字

如何将数据块添加到d3力有向图中?

DOM不自动更新,尽管运行倒计时TS,JS

自定义确认组件未在vue.js的v菜单内打开

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

为什么我看到的是回复,而不是我的文档?

我在哪里添加过滤器值到这个函数?

设置复选框根据选中状态输入选中值

使用Java脚本替换字符串中的小文本格式hashtag

在对象的嵌套数组中添加两个属性

Rails 7:在不使用导入映射的情况下导入Java脚本

如何在底部重叠多个div?

为什么我的Reaction组件不能使用createBrowserRouter呈现?

获取S点击的元素类(这?)并将其应用于另一个元素(目标),同时删除目标元素上的所有类