所以,我要的是有一个顶级路由App.js
的路由到
Home
的“/”。在Home
我想渲染一些东西,然后在一个地方我根据路径选择要渲染的内容。
即如果路径是“/”我想显示一个Link
可以带我到“/about”的路径,如果路径是“/about”我会在About
那里显示组件。
在App.js
我总是有一个Link
可以带我回到“/”的。
所以App.js
渲染这个:
<Router>
<div>
<Link to="/">
<button>Go to home</button>
</Link>
<Route exact path="/" component={() => <Home/>} />
<Route exact path="/other" component={() => <Other/>} />
</div>
</Router>
Home
渲染这个:
<div>
THIS IS HOME WOO!
<Router>
<div>
<Route exact path="/" component={() => <HomeController/>} />
<Route exact path="/about" component={() => <About/>} />
</div>
</Router>
</div>
HomeController
渲染这个:
<Link to="/about">
<button>Go to about</button>
</Link>
并About
呈现这个:
<div>
ABOUT
</div>
当我启动应用程序时,它看起来像这样:
当我单击“转到约”时,它看起来像这样:
正确更新 url 和路由器显示的内容 Home
但是,如果我现在单击“回家”,则会发生这种情况:
正确更新 url 但在渲染时保留“关于”页面Home
?
为什么是这样?为什么“/”似乎仍然路由到“/about”?我需要更改什么才能使按钮路由回到“/”并再次显示“转到大约”按钮?
这是我用来重新创建问题的所有代码:pastebin