javascript - react-router-redux 将历史传递给中间件

标签 javascript reactjs react-redux history.js react-router-redux

我有以下文件:

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')
)

版本:“历史”:“4.7.2”,“react-redux”:“5.0.6”,“react-router-redux”:“5.0.0-alpha.8”,“redux”:“3.7.2"

所以我必须将历史传递给 <Router>routerMiddleware() .有没有一种简单的方法可以访问 middleware.js 中创建的历史记录? ?

最佳答案

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

// middleware.js

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


let createMiddleWare = ({history}) => { [
  routerMiddleware(history); //<-- history
])

关于javascript - react-router-redux 将历史传递给中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46872042/

相关文章:

javascript - .getTime 不是函数

Javascript 定义属性

java - 如何在 Java 中迭代以下格式的日期范围 25-12-2012 到 31-12-2012(应保留连字符)?

reactjs - react : state contains empty object after setState on object with values

javascript - 如何将提交的表单数据发送到本地服务器

javascript - 使用扩展运算符时如何处理未定义的 API 响应?

javascript - 我们如何在 JavaScript 中找到文件中的不同单词?

javascript - 处理和解析 json 数据到 React 组件

redux - 在 useEffect 中调用调度?

reactjs - React/Redux 如何等待分派(dispatch)的操作完成?