在react-router-dom中出现Route&Link问题

时间:2019-03-19 04:39:58

标签: reactjs react-router-dom

我正在一个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。

2 个答案:

答案 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