我是 NgRx 新手,我的选择器返回空白初始状态,而不是使用从效果中的 API 请求获取的数据。
当我在 home.component.ts 中使用选择器时,我得到以下输出:
homepage.component - global state - books is
["", {…}, 4, true, …]
0: ""
1: Object
2: 4
3: true
4: ""
homepage.component - global state - pokemon is
["", {…}, 4, true, …]
0: ""
1: Object
2: 4
3: true
4: ""
但是效果 API 调用正在工作。
我已经设置了一个在线示例: StackBlitz 示例
只需取消注释“// Global State Calls Do Not Work”部分
任何帮助表示赞赏!我有点失落。
干杯!
编辑:
我已经修复了选择器,并且没有对 booksLoaded 操作执行任何操作。
新错误是:
没有重载与此调用匹配。 重载第 1 个(共 2 个)“(observerOrNext?: Partial
| ((value: BooksState) => void) | undefined): Subscription”,出现以下错误。 '(res: Book[]) => void' 类型的参数不可分配给 'Partial | 类型的参数((值:BooksState) => void) |未定义'。
让我觉得 book.reducer 中的“Bookstate 扩展了 Book”并没有做我认为它正在做的事情......
selectBooks
选择器不返回书籍数组,它只返回一本书。
如果你需要这是一个数组,你需要在reducer中存储一个书籍数组。