Как использовать RxJS BehaviorSubject с Sapper SSR? - PullRequest
0 голосов
/ 26 июня 2019

Если я использую стандартную процедуру запуска Сапера:

npx degit "sveltejs/sapper-template#rollup" my-app
npx degit "sveltejs/sapper-template#webpack" my-app
cd my-app
npm install
npm run dev & open http://localhost:3000

У меня "большой успех". В моем приложении Svelte я использую rxfire для запроса моей БД, поэтому у меня есть RxJS BehviourSubject, который содержит начальное значение и обновляется после загрузки информации о БД. Это прекрасно работает в Svelte, но версия Sapper SSR задыхается.

Если я изменю пример приложения Sapper следующим образом:

<script>
 import { BehaviorSubject } from 'rxjs';

 let title$ = new BehaviorSubject('Great success!');
 title$.set = title$.next;
</script>

<!-- ... -->

<h1>{ $title$ }</h1>

Я получаю это:

500

store.subscribe(...) is not a function

TypeError: store.subscribe(...) is not a function
    at get_store_value (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:255:36)
    at create_ssr_component (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:269:103)
    at Object.$$render (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:231:22)
    at Object.default (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:564:204)
    at create_ssr_component (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:406:38)
    at Object.$$render (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:231:22)
    at create_ssr_component (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:562:41)
    at $$render (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:231:22)
    at Object.render (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:239:26)
    at handle_page (/Users/eveland/Documents/Epiphero/Site/apps/test/__sapper__/dev/server/server.js:2936:36)

как начальный рендер до того, как Svelte вступит во владение и правильно отобразит страницу.

Почему я не могу использовать BehviorSubject в Sapper?

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