2016-10-03 6 views
0

Ich versuche, meine Reaktion App auf das Dateisystem im IE Edge-Browser zu arbeiten. Bisher bin ich soweit gekommen.Wie bekomme ich React Router Basisname zu arbeiten

import { createHistory, useBasename } from 'history' 
let appHistory = useBasename(createHistory)({ 
    basename: '/build' 
}); 
<Router history={appHistory}> 
<Route path={window.location.pathname} component={App}> 

Und auf diese Weise ich eigentlich eine Seite machen sehen, aber die Routen nicht funktionieren ich auch diesen Weg in dem Edge-Browser file: /// C:/C:/... usw. Warum hat es zwei C:/'s?

In Chrom bekomme ich diesen Fehler

Uncaught DOMException: Fehler beim 'pushstate' auf 'Geschichte' ausführen: Ein Geschichte Statusobjekt mit URL 'file: /// C:/build/windows' kann nicht in einem Dokument mit Ursprung 'Null' und URL 'Datei: /// C: /src/myproject/build/index.html' erstellt werden.

+0

Vielleicht haben Sie diesen Code aus einem Führer und ich bin sehr falsch, aber ich fühle mich wie den Pfad zu 'window.location.pathname' Einstellung sollte nicht funktionieren. Sie sollten eine Zeichenfolge als Pfad angeben, zB: 'path = {'/'}' –

+0

Tatsächlich funktioniert es nur mit window.location.pathname aus dem Dateisystem. Das einzige Problem ist jetzt, dass Pushstate nicht funktioniert. –

Antwort

2

sollten Sie useRouterHistory anstelle von useBaseName:

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

const history = useRouterHistory(createBrowserHistory)({ 
    basename: '/dist' 
}); 

<Router history={history}> 
    <Route path="/" component={App} /> 
</Router>