React-router 似乎无法处理任何通过本地文件协议(protocol)运行的内容。
它将 file://之后的第三个斜杠解释为路由。
因此,如果您创建一个应用程序并尝试从 file:///C:/myapp.html 运行它
它认为您正在尝试访问路由/C:/myapp.html 并抛出错误提示
“警告:位置“/C:/myapp.html”不匹配任何路由。
当通过文件协议(protocol)提供应用程序时,有没有办法让 react-router 工作?
截至目前,路由器根本无法与 cordova/phonegap 一起工作,因为它们将所有内容都作为本地文件提供。
最佳答案
BrowserHistory 似乎不能与文件协议(protocol)一起使用。
https://github.com/rackt/react-router/issues/2639
HashHistory 似乎有效,我想你可以试一试吗?
// import createBrowserHistory from 'history/lib/createBrowserHistory';
import createHashHistory from 'history/lib/createHashHistory';
// let history = createBrowserHistory();
let history = createHashHistory();
ReactDOM.render(
<Router history={history}>
<Route path='/' component={YourComponent} />
</Router>,
document.querySelector('#your-app-wrapper')
);
关于cordova - react 路由器和 Cordova 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34079549/