2016-01-11 8 views
7

Próbuję użyć routera reagującego 2.0 z prostym routerem redux, ale nie mogę go uruchomić przy analizie zapytań. To jest to, co dostałem od docs:Jak połączyć korzystanie z routera-routeraRouterHistory z prostym-reduktorem-reduktorem

const appHistory = useRouterHistory({ 
    parseQueryString: parse, 
    stringifyQueryString: stringify 
}) 

Jednak jeśli mijam historię do Redux-prosty-router jak to ...

syncReduxAndRouter(appHistory, store, (state) => state.router) 

... mam history.listen is not a function. Używanie browserHistory z routera reagującego wydaje się działać dobrze z prostym routerem redux. Dlaczego brakuje funkcji listen() w historii i jak można tego obejść?

+0

Używaj Redux-prosty-Router 2.x 'npm zainstalować Redux-prosty-Router @ next' i historię 2.0 if używasz historii niestandardowej. Potrzebowałem opcji "basename" i uruchomiłem ją, instalując oba te. – aarosil

Odpowiedz

1

docs reagują-Router zostały zaktualizowane od czasu, kiedy pisał tak:

import { useRouterHistory } from 'react-router' 
import createBrowserHistory from 'history/lib/createBrowserHistory' 

const createAppHistory = useRouterHistory(createBrowserHistory) 

const appHistory = createAppHistory({ 
    parseQueryString: parse, 
    stringifyQuery: stringify 
}) 

<Router history={appHistory}/> 
+1

Miałem wrażenie, że pakiet historii był teraz zależny od routera-reagenta, jednak nie mogłem użyć historii skrótu z react-router/lib/hashHistory. Pojawił się błąd "Uncaught TypeError: createHistory nie jest funkcją" na linii 30 w pliku-router/lib/nazwa_użytkownika. Czy nadal jest wymagane zainstalowanie pakietu historii? –

+1

Jeśli nie można znaleźć pakietu historii, to wydaje mi się, że jest to inny błąd, ale bez wyświetlenia kodu, naprawdę nie mogę pomóc. –

+0

Kod jest taki sam jak twój, zacząłem od najbardziej podstawowego przykładu, jaki mogę. Jeśli zastąpisz "history/lib/createBrowserHistory" przez "react-router/lib/hashHistory", to zepsuje się. Jeśli zainstaluję własny pakiet historii, pozostanę z 2 kopiami pakietu historii w mojej kompilacji. Jak uzyskać dostęp do instancji historii używanej przez router reagowania? –