react-router-redux 历史不被接受(来自示例代码)
react-router-redux history not being accepted (from sample code)
使用
自述文件中的示例
https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux
我在我的索引中创建了这个布局:
// attach the redux dev tools extension for Chrome
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
// apply router logic as middleware
const history = createHistory();
const router_mw = routerMiddleware(history);
// second arg to createStore is the inital redux store state
const store = createStore(
reducers,
initialState,
composeEnhancers(
applyMiddleware(
ReduxPromise,
ReduxThunk,
router_mw
)
));
// --> add routes for logs, opsec, etc. later
ReactDOM.render(
<Provider store={ store }>
<ConnectedRouter history={ history }> // <- error here
<div>
<Route exact path="/" component={ LoginScreen } />
<Route path="/comp1" component={ comp1 } />
<Route path="/comp2" component={ comp2 } />
</div>
</ConnectedRouter>
</Provider>
, document.getElementById('root')
);
任何编译它的尝试都会在 ConnectedRouter 入口点抱怨 { history }:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check your code at index.js:52.
我错过了什么?这是一个 react-router-redux
改造 - 回到 react-router
(并将 ConnectedRouter
更改为 BrowserRouter
)并且一切都按预期工作。
我使用了 react-router-dom@4.2.2
并遇到了同样的问题,直到将 react-router-redux
更新为 ^5.0.0-alpha.9
。
如果你正在使用 react-router-dom@4
你应该使用 react-router-redux@5
,react-router-redux repo:
The next version of react-router-redux will be 5.0.0 and will be compatible with react-router 4.x. It is currently being actively developed over there. Feel free to help out!
使用
自述文件中的示例https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux
我在我的索引中创建了这个布局:
// attach the redux dev tools extension for Chrome
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
// apply router logic as middleware
const history = createHistory();
const router_mw = routerMiddleware(history);
// second arg to createStore is the inital redux store state
const store = createStore(
reducers,
initialState,
composeEnhancers(
applyMiddleware(
ReduxPromise,
ReduxThunk,
router_mw
)
));
// --> add routes for logs, opsec, etc. later
ReactDOM.render(
<Provider store={ store }>
<ConnectedRouter history={ history }> // <- error here
<div>
<Route exact path="/" component={ LoginScreen } />
<Route path="/comp1" component={ comp1 } />
<Route path="/comp2" component={ comp2 } />
</div>
</ConnectedRouter>
</Provider>
, document.getElementById('root')
);
任何编译它的尝试都会在 ConnectedRouter 入口点抱怨 { history }:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check your code at index.js:52.
我错过了什么?这是一个 react-router-redux
改造 - 回到 react-router
(并将 ConnectedRouter
更改为 BrowserRouter
)并且一切都按预期工作。
我使用了 react-router-dom@4.2.2
并遇到了同样的问题,直到将 react-router-redux
更新为 ^5.0.0-alpha.9
。
如果你正在使用 react-router-dom@4
你应该使用 react-router-redux@5
,react-router-redux repo:
The next version of react-router-redux will be 5.0.0 and will be compatible with react-router 4.x. It is currently being actively developed over there. Feel free to help out!