У меня есть следующая проблема с некоторой реализацией в React/Redux.
После нажатия на кнопку вызывается определенное действие сокращения, а на экране отображается div с уведомлением. Вы можете закрыть это уведомление, щелкнув знак (X) на этом div (еще одно избыточное действие), или уведомление автоматически закроется через 5 секунд. Нажатие на (x) должно отменить автоматическое действие.
actions:
const OPEN = 'show_notification';
const CLOSE = 'close_notification';
const CLOSE_AUTO = 'close_auto';
function showNotification(data) {
return {
type: 'OPEN',
data
}
}
function closeNotification(index) {
return {
type: 'CLOSE',
index
}
}
function closeAuto() {
return {
type: 'CLOSE_AUTO'
}
}
epics:
import (...)
closeNotificationAuto = action$ => action
.filter(action => action.type === OPEN)
.mergeMap(action => action
.delay(5000)
.map( () => closeAuto)
.takeUntil(action$.ofType(CLOSE))
}
В любом случае, когда на экране отображаются два уведомления, действие === CLOSE закрывает первое и отменяет задержку() для другого.
Не публикую весь свой код, потому что проблема здесь, в эпиках. Не удается добиться решения:
при нажатии на (x) конкретное уведомление закрывается, но другое (время которого составляет, например, 3 секунды) все еще отображается и автоматически скрывается через еще 2 секунды.
Спасибо за любую помощь!