反应路由器 - 防止通过?

时间:2018-05-09 17:45:20

标签: reactjs react-router

我认为这可能非常简单。

我定义了以下路线:

<SecureRoute path='/test/:name' component={SpecificTest} />
<SecureRoute path='/test' component={TestList} />

我想基于是否路由到不同的组件,已经提供了一个参数:name。上面的路由生成了包含SpecificTestTestList组件的视图。如何在第一次被击中后停止路线处理?

2 个答案:

答案 0 :(得分:2)

我认为你可以通过Switch得到它:

SELECT t.*
FROM transaction t 
WHERE t.timestamp = (SELECT MAX(t2.timestamp)
                     FROM transaction t2 JOIN
                          orders o2
                          ON t2.order_id = o2.idorder 
                     WHERE o2.status = 'done' AND t2.product = t.product
                    ); 

它的作用是渲染第一个匹配的路线。

答案 1 :(得分:0)

在React Router 4中,Switch组件仅渲染第一个匹配组件。在这种情况下,订单也很重要。您可能还希望使用exact布尔参数作为基本路由。

<Switch>
    <SecureRoute exact path='/test' component={TestList} />
    <SecureRoute path='/test/:name' component={SpecificTest} />
</Switch>