默认情况下阻止React Router生成的链接

时间:2019-03-04 10:47:18

标签: javascript reactjs react-router-dom

我开始在代码中使用React Router,但是<Link>甚至<a>标记生成的所有链接都不起作用。当我将鼠标放在这些链接上时,我可以看到正确的URL,但是当我单击它们时,什么也没有发生。我的意思是浏览器中的URL不变。看来我用过e.preventDefault!由于我是React Router的新手,所以我想念了一些东西。

这是代码的一部分(完整的代码很长):

index.js:

<Router>
 ...
 <Menu />
 ...
 <Switch>
     <Route path='/smodel/datasource' component={DataSource}/>
 </Switch>
 ...
</Router>

menu.js

<Link to="/smodel/datasource">New</Link>;

由于我使用了redux,因此在两个页面上都使用了withRouter函数进行连接。

1 个答案:

答案 0 :(得分:0)

您需要像下面那样重组代码

...
 <Menu />
 ...
<Router>
 <Switch>
     <Route path='/smodel/datasource' component={DataSource}/>
 </Switch>
</Router>

<Menu />中包含<Router />的情况下,必须有<Route />。您只是在分配链接,因此它们需要位于<Router />之外。

<Router />可以具有<Switch /><div />或任何元素,并且可以与<Route /> s嵌套在一起。

相关问题