首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在状态树中找不到路由器缩减程序,它必须安装在" router“下

错误:在状态树中找不到路由器缩减程序,它必须安装在" router“下
EN

Stack Overflow用户
提问于 2019-12-23 16:28:24
回答 1查看 1.7K关注 0票数 2

上述错误发生在组件中:在ConnectedRouter中的ConnectedRouterWithContext中的ConnectFunction中,在Provider中我遇到了一个错误,说在状态树中找不到路由器reducer,它必须安装在" router“下。

这是我的store.js文件.

代码语言:javascript
复制
import storage from 'redux-persist/es/storage';
import { apiMiddleware } from 'redux-api-middleware';
import { applyMiddleware, createStore } from 'redux';
import { createFilter   } from 'redux-persist-transform-filter';
import { persistReducer, persistStore } from 'redux-persist';
import { routerMiddleware } from 'react-router-redux';
import rootReducer from './redux/reducers';
import { combineReducers } from 'redux-immutable';
import { connectRouter, RouterState } from 'connected-react-router/immutable';


export default (history) => {
    const persistedFilter = createFilter(
      'auth', ['access', 'refresh']);

    const reducer = persistReducer(
      {
        key: 'polls',
        storage: storage,
        whitelist: ['auth'],
        transforms: [persistedFilter]
      },
      rootReducer)

    const store = createStore(
      reducer, {},

      applyMiddleware(
        apiMiddleware, 
        routerMiddleware(history))

    )
    persistStore(store)
    return store
  }

这就是我的index.js

代码语言:javascript
复制
const history = createHistory()
const store = configureStore(history)

ReactDOM.render((
  <Provider store={store}>
  <ConnectedRouter history={history}>
    <Router>
      <Switch>
        <Route exact path="/login/" component={Login} />
        <PrivateRoute path="/" component={App}/>
      </Switch>
    </Router>
    </ConnectedRouter>
  </Provider>
), document.getElementById('root'));
EN

回答 1

Stack Overflow用户

发布于 2020-08-06 13:50:09

首先,您应该在减速器中添加一个路由器。

代码语言:javascript
复制
const createRootReducer = (history) => combineReducers({
  router: connectRouter(history),
  ... // rest of your reducers
})
export default createRootReducer

如果您正在使用react-router-dom@5.x.x,那么您应该使用history@4.10.1,因为最新版本的history (v5)只适用于react-router-dom@6.x.x

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59452157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档