react 报错You should not use xx outside a 「Router」

青旅半醒 2021-07-24 12:11 475阅读 0赞
  1. 不能将使用了react-router-dom的组件暴露在BrowserRouter之外
  2. 解决:将组件放在BrowserRouter

代码示例:

  1. import React,{ Component} from 'react'
  2. import Header from './common/header'
  3. import { CreateGlobalStyle} from './style.js';
  4. import { Icon} from './statics/iconfont/iconfont'
  5. import { BrowserRouter,Switch,Route} from 'react-router-dom'
  6. import Home from './page/Home/home'
  7. import Detail from './page/Detail/detail'
  8. import Login from './page/Login/login'
  9. class App extends Component{
  10. render()
  11. {
  12. return(
  13. <div>
  14. <CreateGlobalStyle/>
  15. <Icon />
  16. <BrowserRouter>
  17. <div>
  18. //解决方案
  19. <Header></Header>
  20. <Switch>
  21. <Route path='/' exact render={ (props)=>{ return <Home { ...props} />}} ></Route>
  22. <Route path='/login' render={ (props)=>{ return <Login { ...props} />}} ></Route>
  23. <Route path='/detail/:id' render={ (props)=>{ return <Detail { ...props} />}} ></Route>
  24. </Switch>
  25. </div>
  26. </BrowserRouter>
  27. </div>
  28. )
  29. }
  30. }
  31. export default App

发表评论

表情:
评论列表 (有 0 条评论,475人围观)

还没有评论,来说两句吧...

相关阅读