2015-09-29 116 views
0

我使用react-router 1.0 rc,並且我遇到了一些歷史問題。我在使用createBrowserHistory(),當我進行路由轉換時,我使用的是pushStatereplaceState,它在地址欄中工作,但沒有重新加載頁面,並且在任何頁面上進行硬刷新會將#/?_ k = 789x0c追加到url ,這讓我覺得應用程序沒有正確使用歷史記錄。React路由器1.0 - 問題與歷史

我已經有了太多的代碼發佈,但下面應該足以看到我如何使用歷史(與大多數例子一樣)。

history.js:

import createBrowserHistory from 'history/lib/createBrowserHistory'; 

export default createBrowserHistory(); 

index.js:

import history from './history'; 

React.render(
    <Provider store={store} history={history}> 
    {() => <Router>{routes}</Router> } 
    </Provider>, 
    document.querySelector('#app') 
); 
+0

我認爲,如果您需要修改散列值「hashchange」event –

+0

,那麼重新加載和重新渲染必須通過響應來應用它雖然使用歷史記錄庫,但它不應該做任何散列更改,它應該是使用pushstate。 – Lee

回答

0

對於類似的事情的人,這個問題是由放置在<Provider>組件的歷史道具,而不是<Router>,一個愚蠢造成的錯誤是遷移到1.0的副作用。