← пред | след →
SergeiVakhrushev 2022-06-26 15:52:04
и в чем проблема?
kernokus 2022-06-26 15:52:43
SergeiVakhrushev 2022-06-26 15:52:04
и в чем проблема?
в том что когда я жму ф5 на дочернем компоненте, то у меня null приходит тут.
и только потом через какое-то время данные
SergeiVakhrushev 2022-06-26 15:53:09
значит не надо null слать
kernokus 2022-06-26 15:53:11
в обычном виде с переходами всё работает.
кейс именно с перезагрузкой страницы
SergeiVakhrushev 2022-06-26 15:54:53
разберитесь откуда null — это может быть либо BehaviorSubject(null) либо от this.editService.loadInfo(params[‘Id’];); что странно если оно шлет null
kernokus 2022-06-26 15:56:22
да естественно это _Info = new BehaviorSubject(null);
потому что при ф5 сначала создаётся инстанс сервиса, потом враппера компонента, потом сам компонент настроек. и запрос не успевает отработать
SergeiVakhrushev 2022-06-26 15:57:05
kernokus 2022-06-26 15:56:22
да естественно это _Info = new BehaviorSubject(null);
потому что при ф5 сначала создаётся инстанс сервиса, потом враппера компонента, потом сам компонент настроек. и запрос не успевает отработать
почему естественно? почему не ReplaySubject(1)
kernokus 2022-06-26 15:58:25
SergeiVakhrushev 2022-06-26 15:57:05
почему естественно? почему не ReplaySubject(1)
я написал выше почему.
вот зачем мне ReplaySubject(1) если это то же самое что и BehaviourSubject() ?
SergeiVakhrushev 2022-06-26 16:01:38
kernokus 2022-06-26 15:58:25
я написал выше почему.
вот зачем мне ReplaySubject(1) если это то же самое что и BehaviourSubject() ?
> потому что при ф5 сначала создаётся инстанс сервиса, потом враппера компонента, потом сам компонент настроек. и запрос не успевает отработать
вообще не имеет отношение к этому
> вот зачем мне вот зачем мне ReplaySubject(1) если это то же самое что и BehaviourSubject() ?(1) если это то же самое что и BehaviourSubject() ?
это разные вещи, очень странно слышать что «я почему то получаю null пока данные еще не пришли» если этот самый null шлется как инициализационное значение
именно в этом и разница — ReplaySubject не имеет инит значение
HostListening 2022-06-26 16:01:48
kernokus 2022-06-26 15:58:25
я написал выше почему.
вот зачем мне ReplaySubject(1) если это то же самое что и BehaviourSubject() ?
это не тоже самое, что и бехавиор))))
kernokus 2022-06-26 16:04:08
HostListening 2022-06-26 16:01:48
это не тоже самое, что и бехавиор))))
я имею в виду что с буффером 1 он работает также как бихевиор без начального значения
kernokus 2022-06-26 16:04:32
я понял общую идею — надо дождаться данные
SergeiVakhrushev 2022-06-26 16:04:35
kernokus 2022-06-26 16:04:08
я имею в виду что с буффером 1 он работает также как бихевиор без начального значения
это понятно, но проблема то у вас с инит значением
SergeiVakhrushev 2022-06-26 16:06:08
> бихевиор без начального значения
и такого не может быть
kernokus 2022-06-26 16:06:11
SergeiVakhrushev 2022-06-26 16:04:35
это понятно, но проблема то у вас с инит значением
да.
делаю ф5, ловлю начальное значение. с Replay это будет indefined, с Behaviour с начальным состоянием null.
только потом данные приходят из метода, но уже поздно
kernokus 2022-06-26 16:06:22
SergeiVakhrushev 2022-06-26 16:06:08
> бихевиор без начального значения
и такого не может быть
я в курсе)
SergeiVakhrushev 2022-06-26 16:06:48
> с Replay это будет indefined
не будет undefined
он будет ждать первое значение
dopusteam 2022-06-26 16:06:49
kernokus 2022-06-26 16:06:11
да.
делаю ф5, ловлю начальное значение. с Replay это будет indefined, с Behaviour с начальным состоянием null.
только потом данные приходят из метода, но уже поздно
Ну так разрулите это в компоненте, пусть ждёт данных. А то как то слишком странно получается
kernokus 2022-06-26 16:08:36
dopusteam 2022-06-26 16:06:49
Ну так разрулите это в компоненте, пусть ждёт данных. А то как то слишком странно получается
а как я сделаю это без асинка?
вот это я не понимаю. у меня в сервисе метод кладёт данные в info$. я на info$ подписываюсь, но там null при ф5. Данные ещё не пришли
SergeiVakhrushev 2022-06-26 16:09:15
kernokus 2022-06-26 16:08:36
а как я сделаю это без асинка?
вот это я не понимаю. у меня в сервисе метод кладёт данные в info$. я на info$ подписываюсь, но там null при ф5. Данные ещё не пришли
сложно Replay попробовать?
kernokus 2022-06-26 16:09:16
SergeiVakhrushev 2022-06-26 16:06:48
> с Replay это будет indefined
не будет undefined
он будет ждать первое значение
там будет undefined)
dopusteam 2022-06-26 16:09:21
kernokus 2022-06-26 16:08:36
а как я сделаю это без асинка?
вот это я не понимаю. у меня в сервисе метод кладёт данные в info$. я на info$ подписываюсь, но там null при ф5. Данные ещё не пришли
Сделайте с асинк, почему нет?
SergeiVakhrushev 2022-06-26 16:10:07
kernokus 2022-06-26 16:09:16
там будет undefined)
значит код такой раз там undefined, в оригинале там ничего нет
SergeiVakhrushev 2022-06-26 16:10:26
разбирайтесь откуда там undefined
kernokus 2022-06-26 16:10:51
SergeiVakhrushev 2022-06-26 16:10:07
значит код такой раз там undefined, в оригинале там ничего нет
ты подпишись на Replay без значения и посмотри что будет
kernokus 2022-06-26 16:11:02
dopusteam 2022-06-26 16:09:21
Сделайте с асинк, почему нет?
потому что в компоненте нужно много данных от этого info$.
я бы сам хотел его кинуть в компонент через async с удовольствием, но не могу
dopusteam 2022-06-26 16:11:46
kernokus 2022-06-26 16:11:02
потому что в компоненте нужно много данных от этого info$.
я бы сам хотел его кинуть в компонент через async с удовольствием, но не могу
Не понимаю пока, сорян. Компонент не получил данные- пусть ничего не рисует пока
kernokus 2022-06-26 16:12:52
dopusteam 2022-06-26 16:11:46
Не понимаю пока, сорян. Компонент не получил данные- пусть ничего не рисует пока
там надо дальше в onInit эти данные использовать.
отрисовка-то ладно. ngIf решает эту проблему
SergeiVakhrushev 2022-06-26 16:13:52
kernokus 2022-06-26 16:10:51
ты подпишись на Replay без значения и посмотри что будет
подписался, ничего нет, только через 3 сек значение которое я же шлю
Rxjs (forked) — StackBlitz —
StackblitzBlank starter project for building TypeScript apps.
zigzag_ua 2022-06-26 16:24:16
Если у меня есть модуль UserModalModule, и я хочу открыть эту модалку с помощью MatDialog, то как мне лучше это сделать, чтобы все модули, которые заимпорчены в UserModalModule нормально подтянулись, и не ругалось что нет провайдера и т. д. ? сейчас приходится передавать viewContainerRef и componentFactoryResolver чтобы работало и не ругалось. Вижу в 14 ангуляре появился параметр injector, но если передаю только его, то не работает. Думаю может сделать сервис для каждой компоненты (которая может быть модалкой) и этот сервис будет провайдится в модуле и можно будет использовать этот сервис, чтобы управлять модалкой. Или есть другое решение ?
SergeiVakhrushev 2022-06-26 16:26:49
zigzag_ua 2022-06-26 16:24:16
Если у меня есть модуль UserModalModule, и я хочу открыть эту модалку с помощью MatDialog, то как мне лучше это сделать, чтобы все модули, которые заимпорчены в UserModalModule нормально подтянулись, и не ругалось что нет провайдера и т. д. ? сейчас приходится передавать viewContainerRef и componentFactoryResolver чтобы работало и не ругалось. Вижу в 14 ангуляре появился параметр injector, но если передаю только его, то не работает. Думаю может сделать сервис для каждой компоненты (которая может быть модалкой) и этот сервис будет провайдится в модуле и можно будет использовать этот сервис, чтобы управлять модалкой. Или есть другое решение ?
можно заимпортить UserModalModule в модуль, компонент которого должен открыть модалку
zigzag_ua 2022-06-26 16:28:22
SergeiVakhrushev 2022-06-26 16:26:49
можно заимпортить UserModalModule в модуль, компонент которого должен открыть модалку
импортил, В компоненте модалки у меня использовался снекбар, и если открывал этот компонент в модалке, то писало, что нет провайдера для снекбара
SergeiVakhrushev 2022-06-26 16:28:53
zigzag_ua 2022-06-26 16:28:22
импортил, В компоненте модалки у меня использовался снекбар, и если открывал этот компонент в модалке, то писало, что нет провайдера для снекбара
а он в UserModalModule заимпорчен?
zigzag_ua 2022-06-26 16:29:05
SergeiVakhrushev 2022-06-26 16:28:53
а он в UserModalModule заимпорчен?
да
SergeiVakhrushev 2022-06-26 16:29:21
> нет провайдера для снекбара
или scroll strategy ?
zigzag_ua 2022-06-26 16:29:36
SergeiVakhrushev 2022-06-26 16:29:21
> нет провайдера для снекбара
или scroll strategy ?
для снекбара
zigzag_ua 2022-06-26 16:29:54
SergeiVakhrushev 2022-06-26 16:29:21
> нет провайдера для снекбара
или scroll strategy ?
ERROR NullInjectorError: R3InjectorError(AppModule)[MatSnackBar -> MatSnackBar -> MatSnackBar]:
NullInjectorError: No provider for MatSnackBar!
zigzag_ua 2022-06-26 16:30:46
получается у меня есть модуль, который нельзя использовать как модуль, из-за того что еще нужно рефы передавать чтоб работало, подумал может там есть какой-то секрет и я неправильно использую
SergeiVakhrushev 2022-06-26 16:32:37
zigzag_ua 2022-06-26 16:30:46
получается у меня есть модуль, который нельзя использовать как модуль, из-за того что еще нужно рефы передавать чтоб работало, подумал может там есть какой-то секрет и я неправильно использую
по идее это должно работать, но в случае хаотичных импортов бывает что ломается, у нас тоже есть проблемы в приложении — пытаемся все развязать.
SergeiVakhrushev 2022-06-26 16:33:22
должно сработать если MatSnackBarModule добавить в AppModule, что не очень хорошо
zigzag_ua 2022-06-26 16:33:45
SergeiVakhrushev 2022-06-26 16:33:22
должно сработать если MatSnackBarModule добавить в AppModule, что не очень хорошо
да, так работает) но это плохо
SergeiVakhrushev 2022-06-26 16:35:57
а поглядите в какой чанк UserModalModule попадает
SergeiVakhrushev 2022-06-26 16:36:26
если
> можно заимпортить UserModalModule в модуль, компонент которого должен открыть модалку
SergeiVakhrushev 2022-06-26 16:37:21
от не должен быть в main, если он лейзи лоад
zigzag_ua 2022-06-26 16:38:26
я незнаю где посмотреть
SergeiVakhrushev 2022-06-26 16:39:46
zigzag_ua 2022-06-26 16:38:26
я незнаю где посмотреть
после билда в dist folder, поискать в файлах, либо https://www.npmjs.com/package/webpack-bundle-analyzer
npm: webpack-bundle-analyzer —
npmWebpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap. Latest version: 4.5.0, last published: 8 months ago. Start using webpack-bundle-analyzer in your project by running `npm i webpack-bundle-analyzer`. There are 2762 other projects in the npm registry using webpack-bundle-analyzer.
zigzag_ua 2022-06-26 16:40:58
вот такое нашел
zigzag_ua 2022-06-26 16:41:10
zigzag_ua 2022-06-26 16:41:52
а, ну да в мейне
zigzag_ua 2022-06-26 16:42:26
или нет… он в нескольких файлах упоминается, ок сейчас через bundle analyzer гляну
← пред | след →