mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
For the latest version (v5) of react-router-redux, the package was moved from [an external repo](https://github.com/reactjs/react-router-redux) to [live alongside](https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux) the react-router code base. The API has also changed significantly and merits a freshly written type definition. The current version (v4) was moved into its own directory.
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import * as React from 'react'
|
|
import * as ReactDOM from 'react-dom'
|
|
|
|
import { createStore, combineReducers, applyMiddleware, Reducer } from 'redux'
|
|
import { Provider } from 'react-redux'
|
|
|
|
import createHistory from 'history/createBrowserHistory'
|
|
import { Route } from 'react-router'
|
|
|
|
import { ConnectedRouter, routerReducer, routerMiddleware, push, RouterState } from 'react-router-redux'
|
|
|
|
// Create a history of your choosing (we're using a browser history in this case)
|
|
const history = createHistory()
|
|
|
|
// Build the middleware for intercepting and dispatching navigation actions
|
|
const middleware = routerMiddleware(history)
|
|
|
|
interface State {
|
|
router: RouterState
|
|
}
|
|
|
|
// For testing, assume the router reducer is the only sub-reducer:
|
|
const reducers: Reducer<State> = combineReducers<State>({router: routerReducer})
|
|
|
|
// Add the reducer to your store on the `router` key
|
|
// Also apply our middleware for navigating
|
|
const store = createStore(
|
|
reducers,
|
|
applyMiddleware(middleware)
|
|
)
|
|
|
|
const Home = () => <div>Home</div>
|
|
ReactDOM.render(
|
|
<Provider store={store}>
|
|
{ /* ConnectedRouter will use the store from Provider automatically */ }
|
|
<ConnectedRouter history={history}>
|
|
<div>
|
|
<Route exact path="/" component={Home}/>
|
|
</div>
|
|
</ConnectedRouter>
|
|
</Provider>,
|
|
document.getElementById('root')
|
|
)
|
|
|
|
// Now you can dispatch navigation actions from anywhere!
|
|
store.dispatch(push('/foo'))
|