0

을 미들웨어 I가 다음 파일을반응-라우터 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') 
) 

버전 : "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에 생성 된 기록에 쉽게 액세스 할 수 있습니까?

+0

체크 아웃 https://www.youtube.com/watch?v=5Knp04GZAj8&list=PL8vZpHuqa_hPpKUHFlyPkiI4MPexAMhvc&index=6. –

+0

비디오의 녀석은 모두 하나의 파일에서 작업합니다. 질문을 읽어보십시오. – Piu130

답변

1

간단한 대답은 없습니다. 그러나 JS에서는 좋은 일이 아니더라도 모든 것이 가능합니다. 함수에 기록을 전달한 다음 라우터 미들웨어를 반환 할 수 있습니다. 이에로의에 대한

// middleware.js 

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


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