我开始使用react router v4,我有2个问题。我一直在研究和阅读路由器4,但无法解释为什么会发生以下情况: PS。我只包含了我认为相关的代码,请告诉我是否应该更多。
<BrowserRouter>
<div>
<Route path="/" component={PostsIndex} />
<Route path="/posts/new" component={PostsNew}></Route>
</div>
</BrowserRouter>
PostsIndex:
<Link to="/posts/new">Add a Post</Link>
1。以下代码所发生的事情是路线&#39; /&#39;我正在展示PostsNew组件。当我手动将网址添加到&#39; / posts / new&#39;两个组件都被渲染 - PostsIndex和PostsNew是有意的。然而,当我在&#39; /&#39;并点击我的链接(路径:/ posts / new)没有任何反应。除非我刷新页面,否则PostsNew组件不会被渲染(因此,在我点击链接后我已经更改了url但我需要刷新它 - url保持相同 - 然后才会渲染嵌套组件)。为什么会这样?
另一个问题: 下面我想实现相反的 - 非嵌套路线。当我使用开关并首先放置最具体的路线时,它可以工作。此外,当我单击链接时,PostsNew正在呈现而无需刷新。我的问题只是更好地理解路由:
为什么我使用Switch时我的链接工作?如果我不这样做,我必须手动刷新/放置网址?谢谢!
答案 0 :(得分:0)
如果您只想要一个特定的渲染路径,则需要在Routes中添加一个确切的属性:
<Route exact path="/" component={PostsIndex} />
<Route exact path="/posts/new" component={PostsNew}/>