React hooks - Как я могу прикрепить компонент к слушателю с помощью рендеринга на стороне сервера? - PullRequest
0 голосов
/ 07 февраля 2019

Я хотел бы присоединить компонент к слушателю или создать настраиваемую ловушку для этого слушателя.

На стороне клиента я бы сделал это так:

 useEffect(() => {
    const subscription = observable.subscribe({
      next(value) {
        setValue(value);
      }
    });

    return () => subscription.unsubscribe();
  }, [observable])

Присоедините слушателя с помощью useEffect и отмените подписку в функции возврата.Но useEffect не работает на стороне сервера.

1 Ответ

0 голосов
/ 27 февраля 2019

Я думаю, что эта проблема может быть решена (или должна быть решена) на более высоком уровне.Если я подожду, пока все не закончится, а затем запустит функцию renderToString на сервере, все должно быть в курсе.Это означает:

  • Ожидание всех возможных асинхронных функций (на сервере).Поэтому все данные от слушателей должны быть подготовлены и иметь конечное состояние.
  • Запустить функцию renderToString.Это рендерит компоненты и перехватчики.
  • Все перехватчики useState будут инициализированы с правильными значениями от слушателей.

Впоследствии на стороне клиента, где асинхронный код может произойти и имеетчтобы быть обработанными, хуки useEffect выполнят свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...