为什么重新选择重构后 ngrx 应用程序中的状态现在未定义?
Why is state now undefined in ngrx app after reselect refactoring?
我刚刚检查了我以前工作的应用程序并将其重构为使用 reselect 作为 ngrx 示例应用程序 now does。我没有任何编译错误,但我有这个运行时错误:
error_handler.js:53 TypeError: Cannot read property 'token' of undefined
at loggedIn (session.reducer.ts:46)
来自我的 session.reducer.ts 文件中的这段代码
export const loggedIn = (state: Session) => !!state.token;
这是应用程序主页面中用于 show/hide 已登录用户名的标志。该页面几乎完全空白,我遇到了同样的问题,状态的其他部分未定义。我不确定要尝试什么。
您正在使用 createSelector
构建根减速器。可能是打字错误。你可能想要 compose
你的 reducer 函数:
const developmentReducer = compose(
storeFreeze,
localStorageSync(['session'], true),
combineReducers)(reducers);
const productionReducer = compose(
localStorageSync(['session'], true),
combineReducers)(reducers);
我刚刚检查了我以前工作的应用程序并将其重构为使用 reselect 作为 ngrx 示例应用程序 now does。我没有任何编译错误,但我有这个运行时错误:
error_handler.js:53 TypeError: Cannot read property 'token' of undefined
at loggedIn (session.reducer.ts:46)
来自我的 session.reducer.ts 文件中的这段代码
export const loggedIn = (state: Session) => !!state.token;
这是应用程序主页面中用于 show/hide 已登录用户名的标志。该页面几乎完全空白,我遇到了同样的问题,状态的其他部分未定义。我不确定要尝试什么。
您正在使用 createSelector
构建根减速器。可能是打字错误。你可能想要 compose
你的 reducer 函数:
const developmentReducer = compose(
storeFreeze,
localStorageSync(['session'], true),
combineReducers)(reducers);
const productionReducer = compose(
localStorageSync(['session'], true),
combineReducers)(reducers);