(react-router-dom)<Link> 在子组件中呈现元素无法识别浏览器路由器



我目前正在做一个React项目,它在子组件中显示数据列表,点击任何单个数据块都会将web应用程序路由到具有更多详细信息的组件。

然而,为了显示数据,我需要根据一些其他信息对数据进行排序。因此,在对这些信息进行排序之后,理想情况下我希望呈现一个Link元素数组来替换包含所有数据的div。然而,当尝试渲染()时,我一直得到一个错误:error: Invariant failed:你不应该在BrowserRouter&quot外使用Link。我认为出现这种情况是因为render方法不能识别被渲染的div是在父组件中创建的BrowserRouter元素中。

有办法过去吗?如果有帮助的话,我的react版本是17.0.2,我想我的react-router-dom版本是3。

编辑:我为出现的一些错别字道歉,我发得太匆忙了。这里有一个链接到一个codesandbox: https://codesandbox.io/s/react-playground-forked-34k2j?from-embed如果在update()函数中注释掉了link元素,替换元素就可以了。它只是当一个链接被创建时,即使它被父组件中的BrowserRouter封装。

从你报告的消息错误来看,看起来你需要用BrowserRouter、switch和routes来包装你的应用。