You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用react router dom的Link组件实现跨页面数据传递及取值

目标页面获取Link传递的transactionId方法

根据你使用的React Router版本不同,获取方式分为两类:

React Router v6(当前主流版本)

直接使用官方提供的useLocation Hook即可获取到state对象,示例代码如下:

// 先从react-router-dom导入依赖
import { useLocation } from 'react-router-dom';

function PurchasesDetail() {
  const location = useLocation();
  // 加可选链和兜底默认值,避免无state时页面报错
  const transactionId = location.state?.transactionId ?? null;

  // 后续可直接使用该ID请求详情、渲染内容等
  return <div>当前交易ID:{transactionId}</div>
}

export default PurchasesDetail;

React Router v5

函数组件

用法和v6完全一致,调用useLocation Hook获取即可。

类组件

需要用withRouter高阶组件包裹组件,从props中读取location对象:

import { withRouter } from 'react-router-dom';
import React from 'react';

class PurchasesDetail extends React.Component {
  render() {
    const transactionId = this.props.location.state?.transactionId ?? null;
    return <div>当前交易ID:{transactionId}</div>
  }
}

export default withRouter(PurchasesDetail);

注意:Link传递的state是存在会话内存中的,用户刷新目标页面、或者手动输入地址直接访问目标页时,state会丢失。如果需要持久化保存该ID,可将ID拼接为路由路径参数(比如/purchases-detail/:transactionId),或者存储到localStorage/sessionStorage中。

内容的提问来源于stack exchange,提问作者Emily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 17:15:00