Реактивированный виртуальный Masonry-сервер отображает вывод, не соответствующий отображению клиента - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать макет, очень похожий на Pinterest с реактивно-виртуализированными компонентами Masonry, WindowScroller и AutoSizer.На самом деле, это не сильно отличается от образца, приведенного на их официальном сайте .Кроме того, я использую nextjs и предпочитаю включать рендеринг на стороне сервера для этого макета.

Для генерации элементов сетки на стороне сервера, согласно документации по виртуализированной реакции, я установил некоторые случайные значения вРеквизиты serverHeight и serverWidth WindowScroller, а также реквизиты defaultHeight и defaultWidth AutoSizer.Однако, поскольку эти значения отличаются от фактической ширины и высоты браузера, сервер и клиент генерируют разное количество элементов сетки при первоначальной визуализации.Это делает несоответствие между сгенерированными сервером и сгенерированными клиентом HTML-разметками, и React выдает следующее предупреждение:

Warning: Did not expect server HTML to contain a <div> in <div>.

Как можно избавиться от этого предупреждения, заставив сервер и клиент генерироватьтакое же количество элементов сетки при начальном рендеринге или инструктировании React просто вносит необходимые изменения, необходимые для сопоставления сгенерированной сервером разметки с сгенерированной клиентом разметкой?

...