/login
を入力している間、ダッシュボードコンポーネントもレンダリングされます。ログイン中にダッシュボードコンポーネントを省略する必要があります。
Exact属性は適合しません。Dashboardには/dashboard/users
、/dashboard/settings
のようなネストされたパスがあるためです。
<BrowserRouter>
<Route path='/'>
<div>
<Route path='/login' component={Login} exact />
<Route path='/' component={Dashboard} />
</div>
</Route>
</BrowserRouter>
Switch
を使用して、最初に一致するRoute
をレンダリングできます。
<BrowserRouter>
<Route path='/'>
<div>
<Switch>
<Route path='/login' component={Login} exact />
<Route path='/' component={Dashboard} />
</Switch>
</div>
</Route>
</BrowserRouter>
ルートを次のように変更します。
<Route path='login' component={Login} exact />
<Route path='dashboard' component={Dashboard} />