Javascript 如何修复错误:在状态树中找不到路由器缩减器,它必须安装在“";路由器“;
我得到-错误:在状态树中找不到路由器缩减器,它必须安装在“路由器”下 我读过所有类似的主题。尝试了不同的变体,但找不到解决方案。我仍然没有足够的知识来理解这门学科。如果您知道如何修复此错误,请使用Plz index.jsJavascript 如何修复错误:在状态树中找不到路由器缩减器,它必须安装在“";路由器“;,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我得到-错误:在状态树中找不到路由器缩减器,它必须安装在“路由器”下 我读过所有类似的主题。尝试了不同的变体,但找不到解决方案。我仍然没有足够的知识来理解这门学科。如果您知道如何修复此错误,请使用Plz index.js import { render } from 'react-dom'; import { Provider, ReactReduxContext } from 'react-redux'; import React from 'react'; import { store, h
import { render } from 'react-dom';
import { Provider, ReactReduxContext } from 'react-redux';
import React from 'react';
import { store, history} from './store';
import { Route, Switch } from 'react-router-dom';
import { ConnectedRouter } from 'connected-react-router'
import App from './components/App/App';
render(
<Provider store={store}>
<ConnectedRouter history={history} context={ReactReduxContext}>
<Switch>
<Route path="/" component={App} />
</Switch>
</ConnectedRouter>
</Provider>,
document.getElementById('root')
);
store.js
import { applyMiddleware, createStore } from 'redux';
import { createLogger } from 'redux-logger';
import { promiseMiddleware, localStorageMiddleware } from './middleware';
import reducer from './reducers/reducers';
import { routerMiddleware } from 'react-router-redux'
import { createBrowserHistory } from 'history';
export const history = createBrowserHistory();
const getMiddleware = () => applyMiddleware(
routerMiddleware(history), promiseMiddleware, localStorageMiddleware, createLogger()
);
export const store = createStore(
reducer,
getMiddleware(),
);
试着这样做:
in-store.js
import { applyMiddleware, createStore } from 'redux';
import { createLogger } from 'redux-logger';
import { promiseMiddleware, localStorageMiddleware } from './middleware';
import reducer from './reducers/reducers';
import { createBrowserHistory } from 'history';
import { routerMiddleware } from 'connected-react-router';
export const history = createBrowserHistory();
const myRouterMiddleware = routerMiddleware(history);
const getMiddleware = () => applyMiddleware(
myRouterMiddleware, promiseMiddleware, localStorageMiddleware, createLogger()
);
export const store = createStore(
reducer(history),
getMiddleware()
);
在reducers.js中
import { combineReducers } from 'redux';
import { routerReducer } from 'react-router-redux';
export default combineReducers({
router: routerReducer
});
import authorization from './authorization';
import mainstate from './mainstate';
import home from './home';
import { combineReducers } from 'redux';
import { connectRouter } from 'connected-react-router'
export default (history) => combineReducers({
authorization,
mainstate,
home,
router: connectRouter(history)
});
出现了相同的错误:(有几个问题
createStore(reducer,getMiddleware())
-增强器(中间件)需要是第三个参数,第二个参数应该是存储的初始状态。请参阅
试试这个
createStore(reducer, {}, getMiddleware())
另一个问题是
history
包的版本,使用react-router-dom
v5,您需要使用history
v4(最新版本是4.10.1
)-history
v5仅与react-dom
v6兼容
在您在下面的评论中发布的Codesandbox中,在package.json中更改以下内容可以使其正常工作
"dependencies": {
...
"history": "^5.0.0", -> "history": "4.10.1",
...
}
有几个问题
createStore(reducer,getMiddleware())
-增强器(中间件)需要是第三个参数,第二个参数应该是存储的初始状态。请参阅
试试这个
createStore(reducer, {}, getMiddleware())
另一个问题是history
包的版本,使用react-router-dom
v5,您需要使用history
v4(最新版本是4.10.1
)-history
v5仅与react-dom
v6兼容
在您在下面的评论中发布的Codesandbox中,在package.json中更改以下内容可以使其正常工作
"dependencies": {
...
"history": "^5.0.0", -> "history": "4.10.1",
...
}
很多解决方案都指向历史
库版本
history
程序包的版本5.x
导致上述问题
请尝试将历史
版本降级为4.10.1
,因为有很多解决方案指向历史
库版本
history
程序包的版本5.x
导致上述问题
请您尝试将历史
版本降级为4.10.1
as我想您可以在这里找到答案:我想您可以在这里找到答案:谢谢!尝试从“连接的反应路由器”进行正确导入,但仍然存在相同的错误。我从我的reducers.js和store.js文件中添加了更多代码,它可能显示了我的位置错误。啊,等等,我想我发现了潜在的问题:-)将更新answerdone itcreateStore(reducer,{},getMiddleware())
但没有任何更改,我在codesandbox上复制了它-它不工作,还有很多事情要做,但是我完全被这个错误卡住了:/明白了-这是history
和react-router-dom
的版本控制问题。回答更新。谢谢!试图从“已连接的路由器”执行正确的导入,但仍然存在相同的错误。我从我的reducers.js和store.js文件中添加了更多的代码,可能是因为它显示了我的错误所在。啊,等等,我想我发现了潜在的问题:-)将更新answerdone itcreateStore(reducer,{},getMiddleware())
但没有任何更改,我在codesandbox上复制了它不起作用的项目,还有很多事情要做,但是我完全被这个错误卡住了:/明白了-这是history
和react-router-dom
的版本控制问题。答案已更新。