Это происходит, так как значение admin
не является истинным до выполнения этого кода.
Как я указал в своем комментарии, это зависит от того, как вы получаете значение admin
Более простой обходной путь для ситуации, однако, будет использовать pathname
.
Попробуйте это:
<Switch>
<Route exact path='/' component={HomePage} />
<Route exact path='/help' component={FAQ} />
{admin ? <PrivateRoute authed={userSignedIn} path="/control-panel" exact component={ControlPanel} /> : null}
{window.location.pathname!=='/control-panel' && <Route component={NoMatch} />}
</Switch>
Это должно исправить вашу проблему. Ура !!