Ваш Container
компонент не обновляется.Так что проблема исходит от styled-компонентов.
Рабочее решение состоит в том, чтобы обернуть <Router>
в <Container>
вместо противоположного ... например, так:
const App = () => (
<Provider store={store}>
<ThemeProvider theme={theme}>
<Container>
<Router>
<React.Fragment>
<GlobalStyle />
<menu>
<Link to={"/"}>{"to home"}</Link>
<Link to={"/categories"}>{"to categories"}</Link>
</menu>
<Switch>
<Route exact path={"/"} component={Home} />
<Route path={"/categories"} component={Categories} />
<Route component={NotFound} />
</Switch>
</React.Fragment>
</Router>
</Container>
</ThemeProvider>
</Provider>
);
Другое решение (непроверенное) - использование стиля('div') вместо styled.div и оставьте остальной код без изменений.
Или еще одна вещь (не проверенная), которую нужно попробовать, - заменить <Container>
на <ContainerWrapper>
и вот его код: const ContainerWrapper = props => <Container>{props.children}</Container>
Причиной этого является наличие функции без сохранения состояния, которая, как мы уверены, обновляется при изменении маршрута.
Не стесняйтесь, дайте мне знать, какой метод лучше всего подходит для корректировки этого ответа для дальнейшего использования.