React Cordova条件路由器

时间:2018-10-29 00:36:15

标签: reactjs cordova react-router react-router-v4 react-router-dom

我正在尝试在Cordova中的React应用程序的哈希历史记录和浏览器历史记录之间切换。

在网络上我想使用浏览器历史记录,在Cordova中我必须使用HashHistory

我尝试过类似的事情

sum(case when s.bus_dat>=
  convert(date,dateadd(m,-1,dateadd(d,-day(getdate())+1,getdate())))) 
then qty_sold else 0 end) as LM

但是什么都没有加载。

import createBrowserHistory from 'history/createBrowserHistory'
import createHashHistory from 'history/createHashHistory'


export default window.cordova ? createHashHistory() : createBrowserHistory()

反正有条件吗?

即所以在cordova中,它使用哈希历史记录,如果没有,它将使用浏览器历史记录?

此黑客将该问题突出显示here

createHashHistory() works fine. 

但是我不确定如何有条件地执行此操作。

1 个答案:

答案 0 :(得分:1)

import React from 'react';
import ReactDOM from 'react-dom';
import createBrowserHistory from 'history/createBrowserHistory'
import createHashHistory from 'history/createHashHistory'
import App from './App'

var history
const startApp = () => {
    ReactDOM.render(
        <Router history={history} >
            <Route component={App} />
        </Router>,
    document.getElementById('root'));
}

if(!window.cordova) {
    history = createBrowserHistory()
    startApp()
}
else{
    history = createHashHistory()
    document.addEventListener('deviceready', startApp, false)
}