【发布时间】:2020-03-09 23:51:33
【问题描述】:
我在我的 Angular 应用程序中使用了一个选择器,但在调用该选择器时遇到了一个未捕获的错误。尽管我已将所需的选择器函数作为参数提供给createSelector。根据此处的重新选择文档 - https://github.com/reduxjs/reselect
Uncaught Error: Selector creators expect all input-selectors to be functions,
instead received the following types: [object]
我确实在这里发现了一个类似的问题,这表明将选择器从箭头函数更改为普通函数声明可以解决它。为了解决函数声明的任何提升问题,但这并不能解决未捕获的错误 - https://github.com/reduxjs/reselect/issues/169
选择器通过传入store.getState()作为参数来调用:
let state = getBookTitles(this.store.getState());
问题:
在调用重新选择的createSelector 时如何解决未捕获的错误?
这是我的 Selectors.js 文件,其中包含应用状态选择器:
// Selectors.js
import { createSelector } from 'reselect';
function selectBooks(state: any) {
return state ? state.books: [];
}
function selectBookTitles(books: any) {
return books ? books.titles: [];
}
// bookTitle selector
export let getBookTitles = createSelector(
selectBooks,
selectBookTitles,
);
【问题讨论】:
标签: javascript redux store reselect