React Router Link未渲染组件,但更改了URL

时间:2019-12-08 03:58:15

标签: reactjs react-router-dom

import { BrowserRouter as Router, Route, Switch} from 'react-router-dom'
               <Router>
                <Fragment>
                    <Navbar />
                    <Switch>
                        <Route exact  path="/" component={Landing}/>
                        <Route   path="/developer/register/" component={RegisterDev} />
                        <Route   path="/developer/login/" component={LoginDev} />
                        <Route   path="/developer/dashboard/" component={Landing} />
                        <Route   path="/agency/register/" component={RegisterAgency} />
                        <Route   path="/agency/login/" component={LoginAgency} />

                        <Route component={NotFound} />
                    </Switch>
                </Fragment>
            </Router>

在我的NavBar组件中

//NavBar.js
<Link to="/"  Home > </Link>

问题是当我在/ developer / register或/ developer / login组件中时,如果单击Home Link,则URL会更改,但不会呈现Landing组件。 Link的所有其他组件都可以正常工作。将Home链接到/的唯一问题。我尝试使用Router,仍然将URL更改为/,但是除非刷新,否则Landing组件不会呈现。

目前,我正在使用href /来解决此问题,但我想了解为什么Link不能呈现。

3 个答案:

答案 0 :(得分:0)

尝试在路由路径中添加精确值。

={0;0;0;1;1;0;0}

答案 1 :(得分:0)

<Link to="/"  Home > </Link>

这是什么语法?

您要么尝试将Home打印为标签,在这种情况下应该为

<Link to="/">Home</Link>

或者您正在尝试将其作为路线的一部分,在这种情况下应该是

<Link to="/Home"/>(尽管这里不会显示文字)

请在使用链接的地方检查Link的语法,如果仍然无法使用,请提供一个沙箱。

答案 2 :(得分:0)

我发现了问题。我应该在问题中共享我的目标网页组件。我在Landing组件中使用了一些jquery滑块。我想反应路由不会加载页面,因为这里的所有内容都是虚拟DOM。之所以使用href,是因为它正在重新加载整个主页。

经过很少的研究,我发现LoadJS Package

现在,我可以使用load js加载jquery滑块脚本,并且我的/链接可以正常工作。感谢所有人发表评论和回应。我应该已经发布了着陆页组件。