@reach/router Renders To A Div
Check out the following snippet that uses
@reach/router
.
import { Router } from '@reach/router';
const Home = () => <h1>Home</h1>;
const App = () => {
return (
<div className="main">
<Router>
<Home path="/home" />
</Router>
</div>
);
}
When you visit '/home', this will render in the DOM as:
<div class="main">
<div tabindex="-1" role="group" style="outline: none;">
<h1>Home<h1>
</div>
</div>
Notice the extra div
-- that is what <Router>
renders to as part of
@reach/router
's accessibility features. This may throw off the structure
or styling of your app. This can be fixed. Any props that you give to
<Router>
will be passed down to that div
. For instance, you could remove
the most outer div
and put className="main"
on the <Router>
.