So what I want is to have a top-level routing in App.js that routes to
Home on "/". In Home i want to render a few things and then one place where I chose what to render based on the path.
i.e. if the path is "/" I want to show a Link that can take me to "/about", if the path is "/about" I'll show the About component there.
In App.js I always have a Link that can take me back to "/".
So App.js render this:
<Router>
<div>
<Link to="/">
<button>Go to home</button>
</Link>
<Route exact path="/" component={() => <Home/>} />
<Route exact path="/other" component={() => <Other/>} />
</div>
</Router>
Home render this:
<div>
THIS IS HOME WOO!
<Router>
<div>
<Route exact path="/" component={() => <HomeController/>} />
<Route exact path="/about" component={() => <About/>} />
</div>
</Router>
</div>
HomeController render this:
<Link to="/about">
<button>Go to about</button>
</Link>
and About render this:
<div>
ABOUT
</div>
When I start the app it looks like this:
When I click 'Go to about' it looks like this:
correctly updating the url and what is showed by the router in Home
But if I now click on 'Go to home' this happens:
correctly updating the url but keeping the 'about' page when rendering Home?
Why is this? Why does "/" seem to still route to "/about"? What would I need to change to make the button route back to "/" and show the 'Go to about'-button again?
Here is all the code I used to recreate the issue: pastebin


