Angular ngrx存储迁移v2到v4

Angular ngrx存储迁移v2到v4,angular,ngrx,ngrx-store,ngrx-store-4.0,Angular,Ngrx,Ngrx Store,Ngrx Store 4.0,我正在考虑升级一款使用ngrx v2的大型angular应用程序。我们的减持器,尤其是选择器,看起来就像当时的回购一样: 《移民指南》还说: @不再需要ngrx/核心,并且可能与@ngrx/存储冲突。你 应该将其从项目中删除 因此,当我删除导入“@ngrx/core/add/operator/select”时,我得到的“属性”select在类型“Observable”上不存在 如果我不想重新选择示例应用程序使用的是哪个,建议的迁移路径是什么?你可以看看从旧版本迁移的方法。我已经看过了。但是他们没

我正在考虑升级一款使用ngrx v2的大型angular应用程序。我们的减持器,尤其是选择器,看起来就像当时的回购一样:

《移民指南》还说:

@不再需要ngrx/核心,并且可能与@ngrx/存储冲突。你 应该将其从项目中删除

因此,当我删除导入“@ngrx/core/add/operator/select”时,我得到的“属性”select在类型“Observable”上不存在


如果我不想重新选择示例应用程序使用的是哪个,建议的迁移路径是什么?

你可以看看从旧版本迁移的方法。我已经看过了。但是他们没有提到如何迁移选择器函数。看看这个。是的,Observable上没有select属性。你希望看到什么?在代码段中您应该将state$:Observable更改为state$:Store…叹气…这很明显。感谢您指出@Jota.toledo您可以查看从旧版本迁移的情况。我已经看过了。但是他们没有提到如何迁移选择器函数。看看这个好吧,是的,Observable上没有select属性。您期待什么?在代码段中,您应该将state$:Observable更改为state$:Store…叹气…这很明显。谢谢您指出@Jota.Toledo
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);