Vue Router 传递参数:使用 props 代替 query
根据提供的代码,我注意到在 A 文件中,'toGoodsOrder' 函数中的跳转语句使用了 'params' 和 'query' 两个选项来传递参数。但是在 B 文件中,使用的是 'route.query.orderId' 来获取参数。
要使参数能够正确传递并在 B 文件中获取,需要进行以下更改:
- 在 A 文件的跳转语句中,将 'params' 选项更改为 'props' 选项,并将 'OrderList' 更改为 'orderId'。这样可以将参数作为 props 传递给 B 文件。
- 在 B 文件中,使用 'props' 选项来接收参数,而不是使用 'route.query.orderId'。这样可以正确获取 A 文件传递的参数。
下面是更改后的代码示例:
A 文件代码:
function toGoodsOrder(orderId?: string) {
console.log('到这里了吗', refundInfo.refund.orderId)
router.push({
name: "/OrderList",
props: { orderId },
// 跳转到 OrderList 路由时,传递一个名为 orderId 的参数
query: { newTitle: '订单管理[' + orderId + ']' },
// 跳转时,附带一个查询参数 newTitle,参数值为'订单管理[' + orderId + ']'
});
}
<span style='color:blue;' @click='toGoodsOrder(refundInfo.refund.orderId)'>{{ refundInfo.refund.orderId }}</span>
B 文件代码:
onActivated(() => {
console.log('从审核详情传回来的 id', props.orderId);
})
通过这些更改,你应该能够在 B 文件中正确打印出从 A 文件传递的 'orderId' 参数。
原文地址: https://www.cveoy.top/t/topic/qDLn 著作权归作者所有。请勿转载和采集!