React-router-dom 重定向不起作用 - 显示错误

off*_*ngh 3 javascript reactjs react-router react-router-v4 react-router-dom

我的反应应用程序react-router-dom无法工作。它显示错误

类型错误:path_to_regexp__WEBPACK_IMPORTED_MODULE_8___default.a.compile 不是函数

查看图像

未捕获的类型错误:path_to_regexp__WEBPACK_IMPORTED_MODULE_8___default.a.compile 不是函数在反应应用程序中显示错误


我不知道为什么会显示 react-router-dom 的错误问题

检查我的代码

该代码显示错误


import React from 'react'
import DefaultLayout from './Component/Layout/DefaultLayout';
import DefaultLogin from './Component/Login/DefaultLogin';
import DefaultSignup from './Component/Sign-up/DefaultSignup';



// react-router-dom

import { BrowserRouter as Router, Route, Switch, Redirect } from "react-router-dom";


// bootstrap css
import 'bootstrap/dist/css/bootstrap.min.css';

// css for global 
import './App.scss';


export default function App() {
    return (
        <>
            <Router>   

                <Switch> 
                        <Route path="/admin" exact component={DefaultLayout} />
                        <Route path="/admin/signup"  component={DefaultSignup} />
                        <Route path="/admin/login"  component={DefaultLogin} />
                        <Redirect from="/" to="/admin" />
                </Switch> 


            </Router>            
        </>
    )
}
Run Code Online (Sandbox Code Playgroud)

检查我的代码

该代码没有显示错误,但其余应用程序无法正常工作,因为我使用Redirect ,在Switch组件之外


export default function App() {
    return (
        <>
            <Router>   

                <Switch> 
                        <Route path="/admin" exact component={DefaultLayout} />
                        <Route path="/admin/signup"  component={DefaultSignup} />
                        <Route path="/admin/login"  component={DefaultLogin} />

                </Switch> 

                {/* this show not error but rest app not work proper */}
                   <Redirect from="/" to="/admin" />

            </Router>            
        </>
    )
}
Run Code Online (Sandbox Code Playgroud)

小智 7

通常会发生此错误,因为 create-react-app 安装了 Express 模块,您可以在 package.lock.json 中看到该模块,并且它进一步安装了旧版本(例如 0.1.7)的 path-to-regexp,但为了使 React-router 正常工作它需要1.7.0或更高版本。因此,您可以在应用程序中安装 path-to-regexp 模块(npm i path-to-regexp)并重新启动应用程序。一切都会很好。