首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-router-redux将历史记录传递给中间件

react-router-redux将历史记录传递给中间件
EN

Stack Overflow用户
提问于 2017-10-22 16:32:06
回答 1查看 1.8K关注 0票数 1

我有以下文件:

configureStore.js

代码语言:javascript
复制
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

代码语言:javascript
复制
import { routerMiddleware } from 'react-router-redux'

export default [
  ...
  routerMiddleware(/* How do I access history here? */) //<-- history
]

index.js

代码语言:javascript
复制
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中创建的历史记录

EN

回答 1

Stack Overflow用户

发布于 2017-10-23 21:18:38

一个简单的答案是不。但在JS中,即使不是一件好事,一切都是可能的。您可以将历史记录传递给函数,该函数随后返回路由器中间件。

代码语言:javascript
复制
// middleware.js

import { routerMiddleware } from "react-router-redux";


let createMiddleWare = ({history}) => { [
  routerMiddleware(history); //<-- history
])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46872042

复制
相关文章

相似问题

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