我正在使用react-boilerplate,它使用reselect来读取redux状态并将其映射到props。我正在尝试在react组件外部读取redux状态(例如在myUtil.js中定义的自定义函数中)。
selectors.js中有选择器:
const makeSelectLoading = () => createSelector(selectGlobal, globalState => globalState.get('loading'));
我将makeSelectLoading
导入myUtil.js,并尝试使用console.log(makeSelectLoading())
打印该值。我期望使用Loading
状态变量的值,而不是得到以下内容:
myUtil.js?d403:14 ƒ () {
if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
// apply arguments instead of spreading for performance.
lastResult = func.apply(null, arguments);
}
我希望这行得通吗?如果没有,我在哪里出错了?谢谢!
答案 0 :(得分:0)
makeSelectLoading
本身不是选择器,而是selector factory:返回实际选择器的函数。
要使用它,您应该从中获取选择器实例,然后使用期望的参数调用返回的实例。
const getSelectLoading = makeSelectLoading();
const loadingState = getSelectLoading(state);