Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular NgRx EntityState-我们可以在状态对象属性上使用EntityState吗_Angular_Ngrx_Ngrx Entity - Fatal编程技术网

Angular NgRx EntityState-我们可以在状态对象属性上使用EntityState吗

Angular NgRx EntityState-我们可以在状态对象属性上使用EntityState吗,angular,ngrx,ngrx-entity,Angular,Ngrx,Ngrx Entity,继续我进入NgRx的新旅程,我刚刚发现了EntityState,如果我理解并试图正确使用它,它涵盖了我需要为我做的所有“收集操作”操作 我遵循了这一点,其中有一个小小的区别,我希望(如果可能的话)对我的状态对象的属性使用EntityState,而不是像链接的示例中那样将其扩展为整个状态对象)。我这样做是为了匹配现有数据,并允许另一个列表属性也是EntityState(如果可以这样使用的话,请再说一遍) 我已替换了一个要素状态对象中的对象数组,但在选择时遇到问题 我有一个简单的版本 在本例之后,状

继续我进入
NgRx
的新旅程,我刚刚发现了
EntityState
,如果我理解并试图正确使用它,它涵盖了我需要为我做的所有“收集操作”操作

我遵循了这一点,其中有一个小小的区别,我希望(如果可能的话)对我的状态对象的属性使用
EntityState
,而不是像链接的示例中那样将其扩展为整个状态对象)。我这样做是为了匹配现有数据,并允许另一个列表属性也是
EntityState
(如果可以这样使用的话,请再说一遍)

我已替换了一个要素状态对象中的对象数组,但在选择时遇到问题

我有一个简单的版本

在本例之后,状态为功能1,为了简单起见,我刚刚将其放入一个文件夹而不是单独的模块中

我的应用程序有一些现有的类,我在这些类中从服务器序列化数据

我已将这些文件放入freature1.reducers.ts文件中

 export class BookModel {
      public id : string;
      public title: string;
    }

 /** Serialised in from the backend */
 export class LibraryBackendModel {
      books: Array<BookModel>;
    }
我有一个操作
getLibrarySuccess
,当新数据从服务器传入时会触发该操作,在reducer文件中,我使用helper方法
updateBookList
,它将使用
EntityAdapter
上的所有各种方法进行更新(不包括在内,但它们会在那里)

到目前为止,一切似乎都很好

最后,(问题出在哪里)在
feature1.component.ts
中,我想订阅选择器
getAllBooks

 this.store.pipe(select(fromLibrary.getAllBooks),
      ).subscribe(
        books => this.libaryModel.books = books
      );
在这里,我可以看到IDE报告了一个问题:

错误是

Type '(state: EntityState<BookModel>) => BookModel[]' is not assignable to type 'BookModel[]'.

但我不知道如何解决这个问题,也不知道我做错了什么。来自feature1.getBooks的
是对
booksAdapter.getSelectors()的引用
EntityAdapter
。我假设我需要使用此
EntityAdapter
中的选择器来获取我的更新和状态,但我不确定。

我发现了我的问题,我只需要进入
状态。书籍
如下所示

export const getAllBooks = createSelector(
   getFeature1State,
   state => fromFeature1.getBooks(state.books) <--- pass in state.books
);
导出常量getAllBooks=createSelector( getFeature1State, state=>fromFeature1.getBooks(state.books)
export const getAllBooks = createSelector(
   getFeature1State,
   state => fromFeature1.getBooks
 );
export const getAllBooks = createSelector(
   getFeature1State,
   state => fromFeature1.getBooks(state.books) <--- pass in state.books
);