В моем приложении React/Redux
есть timelineReducer
, который позволяет мне централизованно управлять временной шкалой различных объектов, таких как проекты, задачи и т. Д.
Недавно обнаружена ошибка, которую я раньше не замечал, поскольку для ее возникновения требуется ряд обстоятельств.
Когда я запрашиваю временную шкалу родительского объекта, я вызываю действие, которое выполняет вызов API и устанавливает массив timeline: []
в timelineReducer
.
Если, однако, я запрашиваю Project A
и быстро передумаю и перехожу к Task B
, и у меня случается медленное сетевое соединение в то время, я получаю данные временной шкалы, принадлежащие Project A
, даже если я Я на странице Task B
.
У меня есть процедуры очистки, которые я выполняю для метода жизненного цикла componentWillUnmount()
, но похоже, что процедура очистки завершается до того, как приходит сетевой ответ, и в моем редукторе устанавливается массив timeline: []
, и я получаю неправильные данные .
Кто-нибудь сталкивался с такой ситуацией? Прежде чем пытаться заново изобрести колесо, я хотел посмотреть, существует ли стандартный подход в этих ситуациях.