我在尝试重置路由时重置Redux状态时遇到了很多问题。 输入 routeA 并点击浏览器历史记录到 routeB ,在 routeB 触发 @@ router / LOCATION_CHANGE 后,它会执行错误 routeA 的选择器会导致各种未定义的状态错误。
它不应该运行 routeA选择器,因为我进入 routeB ,我相信这是问题,但我不知道如何解决它
有些甚至碰巧在州内显示重复的密钥,有时候我试图重置错误的状态。
我的风景
我的路线输入回传:
function onEnter() {
replaceReducers({ book, dragAndDrop })
}
replaceReducers:
function replaceReducers(reducers) {
const appReducers = combineReducers({ ...reducers, ...defaultReducers })
store.replaceReducer((state, action) => {
if (action.type === 'RESET_STORE') {
const { routing, application } = state
state = { routing, application }
}
return appReducers(state, action)
})
store.dispatch({ type: 'RESET_STORE' })
apollo.setStore(store)
}
我遵循的步骤以及发生错误的原因:
控制台出错:
Uncaught TypeError: Cannot read property 'get' of undefined in routeB-selector.js
getItems: book => book.get('items')
无法调用此 routeB 选择器,并且某些内容已自动运行。
请帮帮我......