react中withRouter报错。

已经将Router写在外面怎么还是报错

// index.js
import ReactDOM from 'react-dom';
import './scss/index.scss';
import App from './App'
import {
  BrowserRouter,
} from "react-router-dom";

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);
// App.js
import './scss/App.scss';
import React, { Component } from 'react'
import Home from './views/home'
import { Route, Switch, withRouter } from 'react-router-dom';

class App extends Component {
  render() {
    console.log(this.props.history);

    return (
      <div>
        <button onClick={e => this.pushToProfile()}>我的</button>

        <Switch>
          <Route exact path="/" component={Home} />
        </Switch>
      </div>
    )
  }

}

export default withRouter(App);
Uncaught Error: Invariant failed: You should not use <withRouter(App) /> outside a <Router>

 

index.js 改成这个写法:

<BrowserRouter basename='/'>
            <Route path={`/`} component={App}></Route>
        </BrowserRouter>

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y