проставляются пустые фильтры, затем с бека приходят новые, передаются в subject, далее в форму и происходит submit формы. Чтобы не запрашивать с пустыми фильтрами делаю skip(1). Работает норм, но когда компонент разрушается и заново появляется, то фильтры уже приходят актуальные и надо сделать запрос, но т.к. skip(1) стоит, то он ломает. Получается мне то надо на вторых пришедших фильтрах сделать запрос, то на первых. И чет не знаю как это разрулить.
Может filter на пустые фильтры?
Не совсем понял. initFilters = {address: []} примерно такие. Если сделаю InitFilters = null, то форма упадет, т.к. контролы не заполню
когда саму фильтрацию делаешь, возвращай исходный массив, если фильтр пуст.
Просто поставить filter(initFilter => Boolean(initFilter)) или что-то в этом духе. Он не пропустит дальше в поток это значение. Со skip(1) же не работает и форма не падает. Возможно есть тонкости в работе filter и skip(1) но я о них не знаю :)
Т.е. когда форма пустая пытаться делать запрос с пустым фильтров и если он пустой запрос не делать, так то норм)
Там initFilter это объект с пустыми значениями, поток на Boolean на объект сработает. Проверить что это initFilters не могу, т.к. пользователь может сам такие набрать фильтры
filter теряет тип, если сделать filter(Boolean)
Да, точно, проверил. ну тогда item => item
Замените behaviorSubject на replaySubject(1) тогда не будет необходимости в начальных значениях
Хм, спасибо, хороший вариант. Сейчас сделал BehaviorSubject(null) и от него filter(value => !!value). Но начальное значение для формы тогда мимо сабжекта все равно идет.
Обсуждают сегодня