React路由器重定向到更深的URL

时间:2017-09-08 07:48:39

标签: javascript reactjs react-router

我正在使用react,redux,react-router v4,react-router-dom和react-router-redux。我有一个问题,我想在当前的URL上添加一些内容,而不是替换当前的URL。代码是这样的:

const App = () => (
  <div>
    <main>
      <Switch>
        <Route path="/category/:categoryName" component={ProductList} />
        <Route path="/product/:productId/:infoType" component={ProductDetails} />
        <Redirect from='/product/:productId' to={`/product/:productId/details`}/>
        <Redirect from='/' to='/category/featured'/>
      </Switch>
    </main>
  </div>
)

这一行:

<Redirect from='/product/:productId' to={`/product/:productId/details`}/>

我想在当前产品网址中添加详细信息(例如/ product / 1 / details)。但反过来路由器重定向到/ product /:productId / details。

如何解决这个问题?有任何想法吗?在此先感谢!!

1 个答案:

答案 0 :(得分:0)

这次聚会很晚,但是您将to属性作为字符串文字传递(但没有表达式)。相反,您应该使用

to={`/product/${productID}/details`}

您当然需要将查询参数存储在productID中。这将取决于您如何使用路由器-要么获取查询参数(如果可用),要么分配productID,但您认为合适。