React Router'da DefaultRoute başka bir Route'a nasıl ayarlanır
Elimde şunlar var:
<Route name="app" path="/" handler={App}>
<Route name="dashboards" path="dashboards" handler={Dashboard}>
<Route name="exploreDashboard" path="exploreDashboard" handler={ExploreDashboard} />
<Route name="searchDashboard" path="searchDashboard" handler={SearchDashboard} />
<DefaultRoute handler={DashboardExplain} />
</Route>
<DefaultRoute handler={SearchDashboard} />
</Route>
DefaultRoute kullanıldığında, herhangi bir *Dashboard'un Dashboard içinde işlenmesi gerektiğinden SearchDashboard yanlış işlenir.
app" Rotası içindeki DefaultRoute'umun "searchDashboard" Rotasına işaret etmesini istiyorum. Bu React Router ile yapabileceğim bir şey mi yoksa bunun için normal Javascript (sayfa yönlendirmesi için) mi kullanmalıyım?
Temel olarak, eğer kullanıcı ana sayfaya giderse, onu arama panosuna göndermek istiyorum. Yani sanırım window.location.replace("mygreathostname.com/#/dashboards/searchDashboard");
ile eşdeğer bir React Router özelliği arıyorum.
77
3
DefaultRoute yerine Redirect kullanabilirsiniz
Güncelleme 2019-08-09 yenileme sorununu önlemek için bunun yerine bunu kullanın, Ogglas'a teşekkürler
ile yanlışlıkla varsayılan bir yol oluşturmaya çalışıyordum:
Ancak bu, aynı bileşeni işleyen iki farklı yol oluşturur. Bu sadece anlamsız olmakla kalmaz, aynı zamanda kullanıcı arayüzünüzde hatalara da neden olabilir, örneğin `
öğelerini
this.history.isActive()` öğesine göre şekillendirirken.Varsayılan bir rota (dizin rotası olmayan) oluşturmanın doğru yolu `` kullanmaktır:
Bu, react-router 1.0.0'ı temel alır. https://github.com/rackt/react-router/blob/master/modules/IndexRedirect.js adresine bakın.
Jonathan'ın cevabı benim için işe yaramadı. React v0.14.0 ve React Router v1.0.0-rc3 kullanıyorum. Bu işe yaradı:
``.
Matthew'un durumunda, sanırım o da bunu isterdi:
``.
Kaynak: https://github.com/rackt/react-router/blob/master/docs/guides/advanced/ComponentLifecycle.md