Я пытаюсь достичь определенного сценария, написав эпос в наблюдаемом редуксе.
Элементы в представлении
Раскрывающийся список: В раскрывающемся списке есть страны, Текстbox: имеет поле имени пользователя A Флажок: выбор пользователя персоной (аналогично admin против стандарта)
Redux State сохраняет следующее
Страна Dropdown value Text Boxзначение и состояние (отключено или включено) Состояние флажка
Предположение
Если текстовое поле отключено, это означает, что текстовое поле уже имеет какое-либо значение.
Мне нужно вызывать API (принимает страну и имя пользователя в качестве входных данных) всякий раз, когда пользователь изменяет значение в раскрывающемся списке, или если он снимает флажок (когда значение равно false) или еслитекстовое поле отключено.
export default (action$: Observable<any>, state$: State$) => {
const countryValue$ =
state$.pipe(
map(o => o.countryCode),
distinctUntilChanged(),
filter(Boolean),
);
const email$ =
state$.pipe(
filter(o => o.isTextBoxLocked),
filter(o => o.isAdmin === false),
map(o => email),
distinctUntilChanged(),
);
return combineLatest(countryValue$, email$)
.pipe(map(([country, email]) =>
actions.fetchData(country, email)));
};
Проблема в том, что, если значение флажка равно true, все еще инициируется вызов API (поскольку он выбирает последнее значение, отправленное потоком электронной почты).Как это исправить?Это происходит из-за моего использования combLatest.