SUPER_OLEG_DEV Telegram 126
SuperOleg dev notes
Привет! Не так давно писал про механизм lazy hydration - https://www.tgoop.com/super_oleg_dev/102, основанный на хаке с dangerouslySetInnerHTML Встретил интересный баг: - если LazyRender обернут в Suspense - и мы ловим ошибку This Suspense boundary received an update…
Интересно, что в нашем случае ошибка и очистка компонента Footer происходит из-за ошибок гидрации компонента страницы.

Пример лэйаута для наглядности:

<Header />
<Page /> // hydration missmatch
<LazyRender>
<Footer />
</LazyRender>


Это можно исправить, обернув компонент страницы в Suspense, и Реакт свичнется на клиентский рендер только для этого поддерева компонентов, и это не затронет соседний Footer.

Но в этом случае, а у нас на сервере используется renderToString, и если Page компонент упадет с настоящей ошибкой - мы ее на сервере не перехватим и не сможем отдать 500 ошибку.

Писал про это в одном из постов, а также почему не используем на сервере апи Реакта для рендеринга в стрим:
- https://www.tgoop.com/super_oleg_dev/69
- https://www.tgoop.com/super_oleg_dev/49

Так и не нашел хорошего решения проблемы, кроме как избавляться на месте от конкретных ошибок гидрации.
👍4



tgoop.com/super_oleg_dev/126
Create:
Last Update:

Интересно, что в нашем случае ошибка и очистка компонента Footer происходит из-за ошибок гидрации компонента страницы.

Пример лэйаута для наглядности:

<Header />
<Page /> // hydration missmatch
<LazyRender>
<Footer />
</LazyRender>


Это можно исправить, обернув компонент страницы в Suspense, и Реакт свичнется на клиентский рендер только для этого поддерева компонентов, и это не затронет соседний Footer.

Но в этом случае, а у нас на сервере используется renderToString, и если Page компонент упадет с настоящей ошибкой - мы ее на сервере не перехватим и не сможем отдать 500 ошибку.

Писал про это в одном из постов, а также почему не используем на сервере апи Реакта для рендеринга в стрим:
- https://www.tgoop.com/super_oleg_dev/69
- https://www.tgoop.com/super_oleg_dev/49

Так и не нашел хорошего решения проблемы, кроме как избавляться на месте от конкретных ошибок гидрации.

BY SuperOleg dev notes


Share with your friend now:
tgoop.com/super_oleg_dev/126

View MORE
Open in Telegram


Telegram News

Date: |

Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. How to Create a Private or Public Channel on Telegram? It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): Invite up to 200 users from your contacts to join your channel As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces.
from us


Telegram SuperOleg dev notes
FROM American