Добавить элемент в Observableпеременная - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь добавить элемент в список в наблюдаемой, это не очень хорошо работает, когда я вызываю .pipe (map ... это повторяется дважды, и добавляется элемент дважды.

Наблюдаемаяlist:

profesionales$: Observable<Profesional[]>;

Функция для элемента add:

 this.profesionales$ = this.profesionales$.pipe(map(profesionales => {
     return [...profesionales, profesional];
 }));

Последний 'profesional' в [... profesionales, profesional] является элементом для добавления в список.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вы можете использовать rxjs .mergeMap и of для добавления к наблюдаемой.

let profesional = { id: 1, name: "some example profesional" };

this.profesionales$ = this.http
    .get<Profesional[]>("some_url")
    .pipe(mergeMap(v => of(v.concat(profesional));

Примечание: я использовал вызов http в качестве примера наблюдаемой, так как я не уверен в вашемреализация.Это также полезно -> learn rxjs docs

0 голосов
/ 19 февраля 2019

Я предлагаю не использовать Observable для него, вместо этого вы должны использовать BehaviorSubject и использовать его следующим образом:

profesionales$: BehaviorSubject<Profesional[]> = new BehaviorSubject<Profesional[]>([]);

, а затем добавить элемент:

this.profesionales$.next([...this.profesionales$.getValue(), newProfesional])
...