【问题标题】:React Router problem with "Link", Error: Invariant failed: You should not use <Link> outside a <Router>使用“链接”反应路由器问题,错误:不变式失败:您不应该在 <Router> 之外使用 <Link>
【发布时间】:2021-02-26 22:27:27
【问题描述】:

我的问题是当我尝试在我的 Nav.js 中使用“链接”时,我收到一个错误

[

【问题讨论】:

  • 尝试将&lt;div className="App"&gt;&lt;Router&gt;&lt;/Router&gt;&lt;/div&gt; 放入div 中的App.js
  • return (
    );
  • 你的意思是这样吗? - 这仍然有同样的错误

标签: reactjs react-router


【解决方案1】:

可能出现的第一个error将来自你的Home函数组件:-

  • App.js:- 编辑你的const Home 到这个(它应该包含在return):-
const Home = () => {
  return (
    <div>
      <h1>Homepage</h1>
    </div>
  )
}

除此之外,一切都会很好。无论如何,您可以在此sandbox 上看到它,以将其与您当前的代码进行比较。

【讨论】:

  • 感谢沙盒。我的代码匹配...我错过了什么吗?像 npm install 什么的?
  • 有时会因为reactreact-domrouter-router-dom 不是最新的而发生。尝试查看您现在拥有的版本并将其升级到最新版本
  • 好吧...我放弃尝试理解原因。最后,我只需复制并粘贴您的代码即可。谢谢!
  • 很高兴能帮上忙
【解决方案2】:

Nav 组件中使用&lt;BrowserRouter&gt;

【讨论】:

  • 等等.... 一个新问题由此而来。现在,当我单击链接时。它将 URL 更改为 /whatever,但不会更改屏幕。我实际上需要手动刷新页面。
  • 您需要在 App.js 中为您的 indexRoute '/' 指定属性exact
猜你喜欢
  • 2020-02-04
  • 2020-08-04
  • 2021-06-19
  • 1970-01-01
  • 2021-01-16
  • 2021-08-31
  • 2020-09-19
  • 2018-11-05
  • 2019-08-28
相关资源
最近更新 更多