<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>