REACT动态路由建议需要-重定向url


<Route 
exact 
path="/product"
render={this.renderProduct}
/>
<Route 
exact 
path="/product/:productId"
render={this.renderProductApp}
/>

我们使用React-router创建了一些动态url。

在这些产品id中,我想重定向一个特定的产品id url/product/param1/产品/param2其中param1和param2是一些产品id(如kindle等)

请告诉我,因为我是React新手。

理想情况下,路由应该被包裹在<Switch/>中,否则它会渲染所有匹配的路由。对于您的情况,您可以将<Redirect/>放在产品路线的顶部。所以可能的解决方案是:

<Switch>
<Redirect from="/product/ipad" to="/product/kindle"/>
<Route 
exact 
path="/product"
render={this.renderProduct}
/>
<Route 
exact 
path="/product/:productId"
render={this.renderProductApp}
/>
</Switch>

如果有人不想使用exact道具,则需要交换路由位置。这是因为Switch组件只匹配与当前位置匹配的第一个路径。另一个可能的解决方案是:

<Switch>
<Redirect from="/product/ipad" to="/product/kindle"/>
<Route 
path="/product/:productId"
render={this.renderProductApp}
/>
<Route 
path="/product"
render={this.renderProduct}
/>
</Switch>

最新更新