我的问题的标题说明了一切。我一直在尝试使用 react-router-dom 创建一个包含多个“页面”的 React 应用程序。基本上我所做的是提示“npx create-react-app”,创建一些 JS 页面文件只是为了测试这个东西并提示“npm install react-router-dom”。没有其他的。
现在,当我尝试从 react-router-dom 导入 Switch 模块时,我的 IDE(我正在使用 Jetbrains Webstorm)找不到依赖项。我已经手动检查了 node_modules 的模块文件夹中缺少的依赖项,并且依赖项确实不存在。
我已经阅读了几个关于 react-router-dom 的教程,没有人说 Switch 被弃用或类似的东西,所以情况并非如此。
我不知道是否有任何其他信息会有所帮助,但如果我可以提供更多信息,请随时指出。任何帮助,将不胜感激。
我的 package.json 看起来像这样:
{
"name": "react-router-test",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-router-dom": "^5.1.2",
"react-scripts": "3.4.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
最佳答案
将您的 react-router-dom v5 更新为 v6 并替换:
<Switch>
<Route path={`${match.path}/me`}>
<OwnUserProfile />
</Route>
<Route path={`${match.path}/:id`}>
<UserProfile />
</Route>
</Switch>
在 V6 中同样的例子<Routes>
<Route path="/" element={<Home />} />
<Route path="users/*" element={<Users />} />
</Routes>
请参阅 react-routers 中的升级文档
关于javascript - react-router-dom 中缺少交换机和路由器模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61165999/