When implementing the store partten, we need to be careful about mutation.
class DataStore { private lessons: Lesson[] = []; private lessonsSubject = new SubjectImplementation(); lessonsLists$: Observable = { subscribe(obs) { this.lessonsSubject.subscribe(obs); obs.next(lessons); }, unsubscribe(obs) { this.lessonsSubject.unsubscribe(obs); }, }; initializeLessonsList(newList: Lesson[]) { this.lessons = _.cloneDeep(newList); this.lessonsSubject.next(lessons); } addLessons(newLessons) { this.lessons.push(_.cloneDeep(newLessons)); // make a deep clone this.lessonsSubject.next(this.lessons); } } export const store = new DataStore();
We need to make a deep clone in order to avoid accidently mutation.
来源:https://www.cnblogs.com/Answer1215/p/12635608.html