首页 > 解决方案 > react-router中的BrowserRouter和Router有什么区别?

问题描述

我正在尝试为我的应用程序实现基本路由,但被 BrowserRouter 和 Router 之间的区别所困扰。在我的情况下路由器工作正常,BrowserRouter 没有正确路由。

我正在使用历史对象。当用户点击一个按钮时,它需要被带到登录页面 history.push('/login')


const Routing = () => 
    <Router history={history}>
        <Switch>
            <Route exact path="/" component={Home} />
            <Route path="/login" component={Login} />
        </Switch>
    </Router>

以上一项工作,但如果我使用 BrowserRouter 而不是 Router 则无法正常工作。

标签: reactjsreact-router

解决方案


简而言之,它们彼此相等:

import { BrowserRouter } from 'react-router-dom'

<BrowserRouter>
  <App />
</BrowserRouter>

import { Router } from 'react-router-dom'
import { createBrowserHistory } from 'history'

const history = createBrowserHistory()

<Router history={history}>
  <App />
</Router>

推荐阅读