2
我建設有反應,反應路由器一個網站,我有兩個不同類型的路線,像波紋管的例子:有沒有辦法在使用react-router時將params限制在某些值?
<Route name="products" path="/:type/*" handler={ ProductList } />
<Route name="generic-template" path="/*" handler={ TemplatePage } />
所以我的產品頁面需要的類型參數,可以是A,B或C,我希望我訪問的任何鏈接只有在類型爲A,B或C時才能匹配我的產品路線。舉例:
- /type-A/bla -bla-filter - > ProductList應該加載
- /B型/其他-PARAMS - >產品應加載
- /服務/信息 - > TemplatePage應該加載
但以我現在,任何網頁是由產品的路線,因爲匹配該類型僅作爲斜線後面的第一個字符串匹配。作爲一種變通方法,我想換我產品列表組件爲單獨包裝部件,只是發送類型參數沿着這樣的:
var TypeAWrapper = React.createClass({
render: function() {
return (
<ProductList params={{ splat: this.props.params.splat, type: 'A' }} />
);
}
});
var TypeBWrapper = React.createClass({
render: function() {
return (
<ProductList params={{ splat: this.props.params.splat, type: 'B' }} />
);
}
});
,然後我用了不同的路線爲每類產品與靜態匹配。
有沒有人知道更好的解決方案呢?
謝謝,這意味着沒有其他方式使用正則表達式或類似的解決方案。不幸的是,我不能直接使用相同的處理程序,因爲我需要顯式地將我的類型參數傳遞給組件。這就是爲什麼我需要這些包裝。 –