2016-01-16 9 views
5

Z React Router 2.0.0rc1-5 byłem coraz browserHistory jako niezdefiniowany po imporcie:browserHistory niezdefiniowane z React Router 2,00 kandydaci uwolnienia

import { browserHistory } from 'react-router'

Pakiet wydaje się być poprawnie zainstalowana, ale niezależnie od wersja i czy na serwerze lub kliencie, uzyskałem taki sam wynik.

Może to znany błąd?

+0

z nowszymi wersjami 'reagować-router', masz twórca historii z pakietu 'history'. Spójrz na [docs] (https://github.com/rackt/react-router/blob/1.0.x/docs/guides/basics/Histories.md). –

+1

Z oddziału głównego, wierzę, że w rzeczywistości są one pakujące przeglądarkęHistoria w router reagowania teraz – hoodsy

+0

Z rcs 2,0, otrzymuję niezdefiniowany na serwerze ... aw przeglądarce otrzymuję '' 'connect.js? 243b: 60 Uncaught TypeError: finalMapStateToProps nie jest funkcją'' (co wydaje się być problemem Redux). Myślę, że jest to związane z renderowaniem React Router, ponieważ otrzymuję ten sam błąd na serwerze, chyba że usunę router z mojego '' 'renderToString''' – hoodsy

Odpowiedz

1

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

Używam to na stronie serwera:

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

można zainstalować "Reaktor-router" w wersji 3.0, na przykład: 'npm install --save react-router @ 3.0' powinien również zaktualizować plik konfiguracyjny Webpack. I jesteś dobry, by iść. –

0

Install reagować-Router wersja 3.0

npm install --save [email protected] lub

yarn add [email protected]

Następnie obie metody działają:

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

Metoda 2

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

ReactDOM.render(
    // or hashHistory 
    <Router history={browserHistory} routes={routes}/>, 
    document.getElementById('root') 
); 
Powiązane problemy