当前位置: 首页 > 知识库问答 >
问题:

尝试导入错误:“交换机”未从“react-router-dom”中导出

卢子民
2023-03-14

我不知道为什么我会犯这个错误,我在任何地方都找不到答案。我已经卸载了<code>react router dom

我得到的错误:

尝试导入错误:“Switch”未从“react-router-dom”导出。

import React from 'react';
import './App.css';
import NavBar from './components/navbar.js';
import Footer from './components/footer.js';
import Home from './components/pages/homepage/home.js';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';

function App() {
  return (
    <Router>
      <div className="app-container">
        <NavBar />
        <Switch>
          <Route path="/home" component={Home} />
        </Switch>
        <Footer />
      </div>
    </Router>
  );
}

export default App;

共有3个答案

督灿
2023-03-14

这是一个使用react-router-dom V6的示例

import React from 'react'
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'

import '../styles/global.css'

import Layout from '../containers/Layout'
import Home from '../pages/Home'
import Login from '../containers/Login'
import RecoveryPassword from '../containers/RecoveryPassword'
import NotFound from '../pages/NotFound'

const App = () => {
  return (
    <Router>
      <Layout>
        <Routes>
          <Route exact path="/" element={<Home/>}/>
          <Route exact path="/login" element={<Login/>}/>
          <Route exact path="/recovery-password" element={<RecoveryPassword/>}/>
          <Route path="*" element={<NotFound/>}/>
        </Routes>
      </Layout>
    </Router>
  );
}

export default App;
郭弘方
2023-03-14

如果您使用的是react-router-domv6,那么Switch似乎已被Routes替换。

索卓
2023-03-14

在react router dom v6中,“交换机”替换为路由“路由”。您需要从更新导入

import { Switch, Route } from "react-router-dom";

import { Routes ,Route } from 'react-router-dom';

您还需要更新路由声明

<Route path="/" component={Home} />

<Route path='/' element={<Home/>} />

在 react-router-dom 中,您也不需要在 Route 声明中使用 exact。

有关更多信息,您可以访问官方文档:升级到react router dom v6

 类似资料:
  • 我遵循Android安装React导航的所有说明。 首先,“npm安装--Save React-Navigation”,“npm安装--Save React-Native-Gesture-Handler”。“react-native link react-native-gesture-handler”,最后,更新了我的 这是我得到的错误: 错误所在:在创建目录'd:\react Native pr

  • 问题内容: 我注意到可以这样导入: …或像这样: 第一个导入模块中的所有内容(请参阅:导入整个模块的内容) 第二个仅导入模块导出(请参阅:导入默认值) 似乎这两种方法是不同的,并且根本上是不兼容的。 为什么它们都起作用? 请参考源代码并解释该机制…我有兴趣了解其工作原理。 ES6常规模块信息回答了该问题。 我在问使模块像这样工作的机制。在这里,它似乎与源代码中的 “ hacky”导出机制有关,但尚

  • 看这段视频,react路由器似乎很容易使用,但我找不到如何在我的代码中导航,因为我想在单击div时链接,而不是使用

  • 我们是否可以使用单个关键字而不是从'react-native‘中导入{Text,TextInput,Button,StyleSheet,View};“在react Native中?”text、TextInput、Button、StyleSheet、view“是否有可用的单个关键字选项?

  • App.js我有以下路线: 通过单击带有单个参数的链接可以调用此路由: 参数catid总是有一定的值。 Comp1是定义如下的组件: 但现在正在发生的是,在运行时,我得到了以下调试输出: “react router dom”不包含名为“useParams”的导出 --编辑-- 已安装的路由器 dom 版本是 4.2.2。

  • 启动层java初始化期间发生错误。朗,模块。FindException:无法识别模块格式:C:\Users\pinto\Downloads\fontawesome-free-6.1.1-desktop。邮政编码 这是我的导入和悬停错误。