使用connectedRouter时,Redux中出现意外的键,“长度”,“动作”,“位置”等

时间:2019-09-09 21:54:47

标签: javascript reactjs redux

我正在尝试编写一个React应用,并且正在尝试使用ConnectedRouter:

https://github.com/supasate/connected-react-router

这是React Router的Redux绑定。

我遇到以下错误:

Unexpected keys

现在我认为这可能与该问题的公认答案有关:

Redux: Unexpected key found in preloadedState argument passed to createStore

但是,与尝试传递默认值不同的是,我实际上可能希望在我的组合减速器中使用它们。

这是我的reducers / index.js中的当前代码:

export default history =>
  combineReducers({
    router: connectRouter(history),
    search,
    profile,
    color,
    categories,
    coordinates: LocationReducer,
    idprovider,
    firstFavorite,
    analytics,
    sidebar,
    messages,
    total_messages,
    onesignal,
    tokens
  });

在我的store.js中:

import createRootReducer from "./reducers/index";

我不太确定这里是正确的解决方案,因为ConnectedRouter似乎对这些值没有任何作用。

什么是正确的解决方案?

1 个答案:

答案 0 :(得分:0)

编辑:在下面的示例中,我使用了connected-react-router v4中使用的语法,但是我的示例确实很麻烦。 v5 / v6的用法有了更新,如果您使用的是version> = 5,请尝试将我的示例迁移到其中: https://github.com/supasate/connected-react-router/blob/master/FAQ.md#how-to-migrate-from-v4-to-v5v6

您可能没有正确初始化存储。 试试这个:

reducers / index.js

export default combineReducers({
   // router reducer will be added automatically by connectRouter in store.js
    search,
    profile,
    color,
    categories,
    coordinates: LocationReducer,
    idprovider,
    firstFavorite,
    analytics,
    sidebar,
    messages,
    total_messages,
    onesignal,
    tokens
  });

store.js

import {connectRouter, routerMiddleware} from 'connected-react-router';
import {createBrowserHistory} from 'history';
import reducers from './reducers';

const history = createBrowserHistory(history);

const store = createStore(
    connectRouter(history)(reducers),
    applyMiddleware(routerMiddleware(history))
);