который хранит список задач, здесь же есть эффекты, которые выполняют CRUD операции
Потом появляется страница, где выводится список задач, и у каждой задачи есть кнопка удаления или обновления
Я бы хотел по нажатию удалить, показывать спиннер, пока бэкенд не ответит на запрос, что именно эта задача сейчас в процессе удаления
И вот эту логику, я думаю, что не стоит писать в глобальном сторе, мне кажется это можно вынести в локальный стор компоненты
Встречали ли вы такую практику? или все равно выносили в глобальный стор?
А как вы сделаете это ТОЛЬКО в локальном сторе? Всё равно ж глобальный будет слать какие то event о начале удаления, об успешном удалении, нет?
Да, этот момент мне тоже пока что интересен, но я не могу принять тот факт, что глобальный стор будет расти с каждой новой страницей
Ну тогда вам и удаление нужно выносить в локальный стор.
как-то все сложно
Не знаю как там практики, мы делаем так: isLoading = signal(false); sendRequest(): void { this.api.sendRequest().pipe(bindLoadingSignal(this.isLoading)).subscribe() } --- export const bindLoadingSignal = <T>(signal: WritableSignal<boolean>): MonoTypeOperatorFunction<T> => tap({ subscribe: () => signal.set(true), complete: () => signal.set(false), error: () => signal.set(false), });
но вот в контексе ngrx все намного сложнее, ведь приходится делать диспатч экшенов, а диспатч ничего не возвращает
если это нгрх, то тут возможно два подхода. 1. Хранение в сторе флага лоадинга (ну и ошибки тоже) 2. Отслеживание экшенов в компоненте. Типа прилетел экшн на изменение или загрузку, показываем крутилку, потом прилетел апдейт, крутилку гасим.
next только вместо subscribe
tap({ subscribe: () => signal.set(true), complete: () => signal.set(false), error: () => signal.set(false),
Не, next приходит когда от бека уже ответ есть
ну так я о чем
Ты используешь deprecated tap operator из 'rxjs/operators'. Импортируй из 'rxjs'
Обсуждают сегодня