我正在一个React项目中,在该项目中,我使用来自react-router-dom的Switch,Link和Route来路由到路径。但是现在我遇到了问题,并且在控制台中遇到错误 router
中上下文Link
被标记为必需,但是其值为undefined
和无法读取未定义的属性历史记录,该历史记录指向Link.js行号76。当我检查Link.js时,有一行使用了this.context.router.history,似乎this.context.router是未定义的。直到昨天才知道真正的问题是什么。我正在使用的react-router-dom版本是4.1.1。
答案 0 :(得分:1)
您能提供一些代码示例吗? 似乎您超出了BrowserRouter的范围(或HashRouter的范围)。 必须始终在。
的范围内您可以执行以下操作:
<BrowserRouter>
<Link ... />
<Layout>
<Switch>
<Route ... />
<Route ... />
<Route component={NotFound} />
</Switch>
</Layout>
</BrowserRouter>`
但是您不能执行以下操作:
<Link ... />
<BrowserRouter>
<Layout>
<Switch>
<Route ... />
<Route ... />
<Route component={NotFound} />
</Switch>
</Layout>
</BrowserRouter>`
用户Kishan Jaiswal顺便指出了正确的方向,他所链接的问题不是bug,而只是React-router-dom Router外部错放的Link组件。
答案 1 :(得分:0)
只需参考一下并匹配您的路线文件 https://github.com/ReactTraining/react-router/issues/4759