Миграция магазина ngrx v2 в v4
Я смотрю на обновление довольно большого углового приложения, которое использует ngrx v2. Наши редукторы, и особенно селекторы, выглядят так, как это делало в то время: https://github.com/ngrx/example-app/blob/05be2b0c1dd1b1d522adb796bd4c1fce2cc5b366/src/app/reducers/books.ts.
import '@ngrx/core/add/operator/select';
export function getBookEntities(state$: Observable<State>) {
return state$.select(state => state.entities);
}
export const getBookCollection = function (state$: Observable<State>) {
return combineLatest<{ [id: string]: Book }, string[]>(
state$.let(getBookEntities),
state$.let(getCollectionBookIds)
)
.map(([ entities, ids ]) => ids.map(id => entities[id]));
};
Затем использовать данные в компоненте:
this.books$ = store.let(fromRoot.getBookCollection);
Руководство по миграции также говорит:
@ ngrx / core больше не нужен и может конфликтовать с @ngrx/store. Вы должны удалить его из своего проекта.
Поэтому, когда я удаляю импорт "@ngrx/core/add/operator/select", я получаю тонны "Property" select "не существует для типа" Observable ".
Каков рекомендуемый путь миграции, если я не хочу вводить повторный выбор, который использует пример приложения?