我有以下文件:
configureStore.js
import { createStore, applyMiddleware, compose, combineReducers } from 'redux'
import { routerReducer } from 'react-router-redux'
import middleware from './middleware'
export default (initialState) => createStore(
combineReducers({
...
router: routerReducer
}),
initialState,
compose(applyMiddleware(...middleware))
)middleware.js
import { routerMiddleware } from 'react-router-redux'
export default [
...
routerMiddleware(/* How do I access history here? */) //<-- history
]index.js
import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import { ConnectedRouter as Router } from 'react-router-redux'
import { createBrowserHistory } from 'history'
import App from './App'
import configureStore from './configureStore'
const history = createBrowserHistory()
ReactDOM.render(
<Provider store={configureStore()}>
<Router history={history}> //<-- history
<App />
</Router>
</Provider>,
document.getElementById('root')
)版本:"history":"4.7.2","react-redux":"5.0.6","react-router-redux":"5.0.0-alpha.8","redux":"3.7.2“
因此,我必须将历史记录传递给<Router>和routerMiddleware()。有没有一种简单的方法来访问middleware.js中创建的历史记录
发布于 2017-10-23 21:18:38
一个简单的答案是不。但在JS中,即使不是一件好事,一切都是可能的。您可以将历史记录传递给函数,该函数随后返回路由器中间件。
// middleware.js
import { routerMiddleware } from "react-router-redux";
let createMiddleWare = ({history}) => { [
routerMiddleware(history); //<-- history
])https://stackoverflow.com/questions/46872042
复制相似问题