2016-01-16 10 views
5

Con Reagire Router 2.0.0rc1-5 Sono stato sempre browserHistory come undefined dopo l'importazione:browserHistory undefined con Reagire Router 2.00 release candidate

import { browserHistory } from 'react-router'

Il pacchetto sembra essere installato correttamente, ma a prescindere dal versione e se su server o client, ho ottenuto lo stesso risultato.

Forse questo è un bug noto?

+0

Con le versioni più recenti del 'reagire-router', si ottiene il creatore della storia dal pacchetto 'history'. Dai un'occhiata a [i documenti] (https://github.com/rackt/react-router/blob/1.0.x/docs/guides/basics/Histories.md). –

+1

Dal ramo master, credo che siano in realtà il packaging del browserHistory in react-router ora – hoodsy

+0

Con il 2,0 rcs, ottengo indefinito sul server ... e nel browser ottengo '' 'connect.js? 243b: 60 Uncaught TypeError: finalMapStateToProps non è una funzione''' (che sembra un problema di Redux). Penso che sia correlato al rendering di React Router, poiché ricevo lo stesso errore sul server a meno che non rimuovo il router dal mio '' 'renderToString''' – hoodsy

risposta

1

See useRouterHistory: https://github.com/rackt/react-router/blob/master/upgrade-guides/v2.0.0.md#using-custom-histories

Sto usando questo nel lato server:

import {Router, RouterContext, match, useRouterHistory} from 'react-router'; 
import {createMemoryHistory} from 'history'; 

// ... 
const appHistory = useRouterHistory(createMemoryHistory)({}); 
const component = (
    <Provider store={store} key="provider"> 
    <Router routes={routes} history={appHistory} /> 
    </Provider> 
); 
+1

è possibile installare 'react-router' versione 3.0, in questo modo:' installazione npm --save react-router @ 3.0', dovrebbe anche aggiornare il file di configurazione del webpack. E tu sei bello andare. –

0

Installare reagire-router versione 3.0

npm install --save [email protected] o

yarn add [email protected]

Poi, entrambi i metodi funzionano:

Metodo 1

import { Router, useRouterHistory } from 'react-router'; 
import {createMemoryHistory} from 'history'; 
import routes from './routes'; 

const appHistory = useRouterHistory(createMemoryHistory)({}); 

ReactDOM.render(
    <Router history={appHistory} routes={routes}/>, 
    document.getElementById('root') 
); 

Metodo 2

import { Router, browserHistory } from 'react-router'; 
import routes from './routes'; 

ReactDOM.render(
    // or hashHistory 
    <Router history={browserHistory} routes={routes}/>, 
    document.getElementById('root') 
); 
Problemi correlati