【问题标题】:React router v5 with history - no content shown on routing带有历史记录的 React 路由器 v5 - 路由上不显示任何内容
【发布时间】:2021-02-24 13:03:20
【问题描述】:

我正在为我在这里缺少的东西而努力。只要我使用BrowserRouter,我的路由就可以正常工作:

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

但现在我想以编程方式在我的组件之外导航(在传奇中),为此我切换到 Routerhistory

// history.js
import { createBrowserHistory } from 'history'
const history = createBrowserHistory()
export default history

// index.js
import { Router } from 'react-router-dom'
import history from './app/history'

  ReactDOM.render(
    <Provider store={store}>
      <ThemeProvider>
        <Router history={history}>
          <Component />
        </Router>
      </ThemeProvider>
    </Provider>,
    document.getElementById('root')
  )

现在,当我点击刷新时,我会看到路线的内容,但如果我尝试使用历史记录或单击 Link 进行导航,则不会呈现任何路线,只是 url 发生变化。

我错过了什么?

我也试过import { Router } from 'react-router',但没用。

提前致谢!

【问题讨论】:

  • 也许this 会有所帮助

标签: reactjs react-router react-router-dom


【解决方案1】:

似乎很多人都在讨论这个问题,因为使用history 最新版本&gt;=5 导致了这个问题。

它似乎与4.x 版本(例如4.10.1)一起正常工作,因此您可能需要降级history 版本才能使其暂时正常工作。

{
  "history": "4.10.1",
}

以下是未解决的问题:

我猜有人正在解决这个问题。让我们看看然后我们会再次更新。

【讨论】:

  • 我有一个演示,它使用 v4 正常工作,它同时使用 &lt;Link /&gt; 和历史 api codesandbox.io/s/agitated-dhawan-27f6d?file=/src/App.js。你能检查和比较事物吗?如果切换到使用 v5,它将无法按预期工作
  • 谢谢你,我还有另一个项目,一切正常。我在比较中没有发现任何东西。这就是我打开这个赏金的原因。据我所知,我们没有任何区别
  • 不,您的演示将是我作为演示上传的内容。我正在寻找的是我自己的代码中可能缺少的东西。
  • 这很奇怪,我没有做任何更改,现在它正在工作......可能是反应路由器已将其历史记录降级到版本 4?我没有明确的历史作为一个部门。无论如何,感谢您的意见!
猜你喜欢
  • 2017-08-03
  • 2022-07-25
  • 2017-10-19
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2017-06-11
  • 2014-02-05
相关资源
最近更新 更多