Как сделать интерактивное (прикрепить React к) предварительно обработанное приложение React со стороны клиента? - PullRequest
0 голосов
/ 30 августа 2018

Я бы хотел отобразить предварительно обработанное интерактивное приложение на клиенте (сервер просто отправляет html).

Я создал простое приложение реакции для теста, только кнопка, которая при нажатии отображает диалоговое окно с предупреждением.

Тогда я сделал сборку:

  npm run build

Это создало файл index.html в каталоге сборки, который отображает тестовое приложение при открытии.

Это хорошо, но не интерактивно, так что, я думаю, мне нужно как-то присоединить к нему React и вызвать из клиента hydrate (). (Это правильно? Гидрат () работает и на стороне клиента?)

Проблема в том, что я не знаю, как мне вызывать гидрат ().

Вот как обычно вызывается render:

ReactDOM.render(<App />, document.getElementById('root'));

но я не могу использовать это с hydrate () со стороны клиента, потому что JS на стороне клиента не знает синтаксис <App />. Итак, мой вопрос: как я могу вызвать hydrate () в браузере, что я должен указать в качестве первого аргумента вместо <App />?

ReactDOM.hydrate(<App />, document.getElementById('root'));

1 Ответ

0 голосов
/ 30 августа 2018

Нашли решение и оставьте его другим в качестве ответа.

Нет необходимости вызывать гидрат (), все работает как есть. Проблема заключалась в том, что сгенерированные файлы .js и .css были указаны в index.html с путем /static/...

После исправления путей, по которым он работал мгновенно, сгенерированное приложение становится интерактивным, при нажатии кнопки появляется диалоговое окно с предупреждением.

...