Оператор карты.Различные типы функций и средства доступа - PullRequest
0 голосов
/ 23 мая 2018

Я недавно обновил Firebase и AngularFire2 в моем проекте Ionic

Версии:

  • Firebase: 5.0.3
  • AngularFire2: 5.0.0-rc.10
  • rxjs 6.2.0

Теперь я попытался обновить проект с карты регулярных областей до конвейера, используя руководство по миграции: Руководство по миграции AngularFire2 version5

Но если я использую точно такой же пример для следующего блока кода:

    ///my code
    let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
    map(actions => 
    actions.map(a => ({ key: a.key, ...a.payload.val() }))
    )
    ).subscribe(items => {
       return items.map(item => item.key);
   });

    ///example

    afDb.list('items').snapshotChanges().pipe(
    map(actions => 
      actions.map(a => ({ key: a.key, ...a.payload.val() }))
    )
  )

, я получаю следующие исключения:

Аргумент типа 'OperatorFunction' не являетсяприсваивается параметру типа 'UnaryFunction, Observable <{const: string;возврат: любой;} [] >> '.

Типы параметров' source 'и' source 'несовместимы.

Тип "Observable" не может быть назначен типу "Observable".Существуют два различных типа с этим именем, но они не связаны.

Свойство 'source' защищено в типе 'Observable', но общедоступное в типе 'Observable'.

Я уже пробовалдва разных оператора из rxjs

import {map} из 'rxjs / operator';import {map} из 'rxjs / operator / map';

Я ценю любую помощь.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я запускаю его.

У меня нет никакой реальной подсказки, какова была настоящая проблема.Но я полностью удалил свой локальный репозиторий и получил все новые файлы.

Затем я переустановил все файлы NPM.Где-то в этой области была моя проблема.Я предполагаю, что проблема была в любом из моих пакетов npm.

Извините, я не могу больше прояснить проблему.Возможно, у кого-то еще будет такая же проблема в будущем, и он может добавить ее сюда.

0 голосов
/ 23 мая 2018

Ну, я не знаю, в этом ли проблема, но несколько наблюдений:

let dataBaseCollection получает Subscription от .subscribe, а не предметы.Вы не можете вернуться внутрь subscribe, поэтому ваш код должен быть следующим:

let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
    map(actions => actions.map(a => ({ key: a.key, ...a.payload.val() })))
)

Если вы хотите отобразить только ключи, просто выполните:

let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
    map(actions => actions.map(a => a.key))
)
...