Next * <Link>корректно обновляет путь браузера, но не содержимое страницы - PullRequest
0 голосов
/ 05 апреля 2019

Я создаю 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.

У вас, ребята, уже есть эта проблема? Что мне здесь не хватает?

...