Я пытаюсь кэшировать http-запросы, чтобы уменьшить трафик c, в разделе Эффект задачи я проверяю, были ли уже получены пользовательские задачи. Но когда я делаю это, когда я возвращаю кешированные задачи, компонент не рендерится. Если вы удалите его и снова выполните http-запрос, он продолжит работать.
это класс TasksEffect
@Injectable()
export class TasksEffect {
@Effect() fetchEffects = this.actions$.pipe(
ofType(TaskListActions.FETCH_TASKS),
withLatestFrom(this.store.select('tasksModule')),
switchMap(([action, tasksModule]) => {
if (tasksModule.tasks.length) {
return of(new TaskListActions.SetTasks([...tasksModule.tasks]));
}
return this.taskService.fetchTasks((action as TaskListActions.FetchTasks).interval)
.pipe(
catchError(err => of(err)),
switchMap(tasks => of(new TaskListActions.SetTasks(tasks))),
);
})
);
constructor(private taskService: TaskService, private store: Store<fromTasks.AppState>, private actions$: Actions) {
}
}
Что-то не так с моим кодом? если это так, как я могу это исправить? Также есть ли лучший подход для кэширования http-запроса, как memoize в реаги