【问题标题】:What's the proper way to link to a route with parameters?用参数链接到路由的正确方法是什么?
【发布时间】:2019-02-01 07:34:07
【问题描述】:

我在app.js中设置了这些路线:

import { BrowserRouter, Route, Switch } from 'react-router-dom';

<BrowserRouter>
    <Switch>
        <Route name="overview" exact path="/" component={OverviewPage}  />
        <Route name="details1" exact path="/orders/:orderReference/details1" component={DetailsOnePage}/>
        <Route name="details2" exact path="/orders/:orderReference/details2" component={DetailsTwoPage}/>
    </Switch>
</BrowserRouter>

这些路由是通过智能组件中的按钮调用的:

import { Link } from 'react-router-dom';

<IconButton aria-label="Details One">
    <Link to="details1" params={{ orderReference: order.orderReference }}>
        <PickingIcon />
    </Link>                
</IconButton>

我希望这个路由到:

http://localhost:3000/orders/my-reference/details1

但它会:

http://localhost:3000/details1

不存在的。

我检查了,order.orderReference 确实包含值my-reference

上面的代码有什么问题?

【问题讨论】:

    标签: javascript reactjs ecmascript-6 routing


    【解决方案1】:

    在您的链接to 道具中,您必须提供完整的订单路径,例如

    <Link to={`/orders/${order.orderReference}/details1`} >
        <PickingIcon />
    </Link> 
    

    【讨论】:

    • 这可行,但不应该可以按路线名称导航吗?
    • @Spikee,使用 React 路由器的路由导航目前仅按路径而不是名称工作
    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多