Я создаю React
приложение и использую next
, чтобы сделать SSR. Я также использую redux
и redux-saga
, и у меня есть асинхронная логика, которая обновляет статус приложения. Чтобы упростить ситуацию, допустим, у меня есть поле status
в моем хранилище редуксов, которое инициализируется при запуске приложения.
У меня есть компонент, который я называю StatusGate
, который принимает компонент главной страницы как дочерний и отображает его, если поле status
в хранилище redux
хорошо. Мне пришлось отключить ssr
для этого компонента, так как status
отличался на стороне клиента и сервера, что приводило к ошибке рендеринга.
Это в основном то, что я делаю в _app.tsx
рендере:
// Load the redux store, extract Component and pageProps from props
return <Container>
<Provider store={store}>
<NavBar>
<StatusGate>
<Component {...pageProps}/>
</StatusGate>
</NavBar>
</Provider>
</Container>;
И в NavBar
у меня есть Link
, импортированный из next
, что приводит меня к странице /account
. Когда ссылка нажата, URL-адрес корректно обновляется, но содержимое, отображаемое с помощью Component
, не отображается.
Мне показалось очень странным следующий сценарий
// Load the redux store, extract Component and pageProps from props
return <Container>
<Component {...pageProps}/>
<Provider store={store}>
<NavBar>
<StatusGate>
<Component {...pageProps}/>
</StatusGate>
</NavBar>
</Provider>
</Container>;
Здесь я отображаю это Component
дважды, один раз в корне всех моих компонентов, а второй, как и прежде. Теперь содержимое первого корректно обновляется, когда я следую за Link
, а второе все еще не обновляется.
Я использую next@8.0.1
с Typescript, Css и Less.
У вас, ребята, уже есть эта проблема? Что мне здесь не хватает?