我正在使用Redux和react-router v3。Redux + react-router:路由攔截和redux
這是我的路由設置:
<Provider store={store}>
<Router history={ hashHistory }>
<Route path='/' component={ MainLayout }>
<IndexRedirect to='accounts' />
<Route path='*' component={ Accounts } />
<Route path='accounts' component={ Accounts } />
<Route component={ SubLayout }>
<Route path='dashboard' component={ Dashboard }>
<IndexRedirect to='overview' />
<Route path='overview' component={ Overview } />
<Route path='scan' component={ Scan } />
</Route>
</Route>
</Route>
</Router>
</Provider>
這是我想要實現的邏輯:(給用戶跟隨路線 '/')
1)MainLayout組件調度事件得到profileData。如果失敗,重定向 到另一個地址
2)如果成功,重定向路由「賬戶」
3)應收組件進行調用以獲取帳戶數據。
上述工作,但給定路線爲'/ accounts'時出現問題: 1)MainLayout完成其任務並獲取配置文件數據,然後重定向至發出呼叫的帳戶。但是
2)路由器導航到帳戶也使它進行另一個電話。
有沒有更好的方法來做到這一點?我基本上想要重定向到帳戶頁面(如果沒有設置活動帳戶)(在商店的REDEX商店中)
林不知道你明白我的問題是什麼。可以說我遵循路徑'/'。我的主要組件發送一個動作並且可以向帳戶路由發送.push。帳戶組件完成它的功能。但用戶可以輸入此路線'/ accounts'。現在與上面相同,但反應路由器導致帳戶組件再次構建 –
我想我明白你的意思,但我不確定這是什麼問題。我認爲我使用react-router的方式有問題。目前,如果我導航到'/ dashboard/overview',我希望MainLayout只需一次調用即可獲取一些數據。它使兩個。而第二個的發起者被列爲'其他' –
我可以以某種方式向您顯示源代碼嗎? –