反应路由器,以编程方式导航时传递数据?

2023-11-23

我们可以使用导航到不同的路径

this.props.router.push('/some/path')

有没有办法在导航时发送参数(对象)?

我还能想到其他选择,但不知道是否可以通过object有可能吗?

  • 我可以嵌入对象的 id 并从服务器重新获取对象 从新页面。

  • 或者我可以将对象存储在全局存储中,例如 redux 存储。 (该物品很快就要从商店中删除。所以我认为一开始就把它放在那里可能不太好)


当前的答案已经过时。

反应路由器 6:

Use the useNavigate hook:

const navigate = useNavigate();
navigate('/other-page', { state: { id: 7, color: 'green' } });

然后,您可以通过以下方式访问“/other-page”中的状态数据useLocation hook:

const {state} = useLocation();
const { id, color } = state; // Read values passed on state

React 路由器 4 或 5:

调用history.push,并传递一个对象作为第二个参数来传递状态:

props.history.push('/other-page', { id: 7, color: 'green' }))

然后,您可以通过以下方式访问“/other-page”中的状态数据:

props.location.state

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反应路由器,以编程方式导航时传递数据? 的相关文章

随机推荐

  • 如何使用 Jest 获取测试文件上的 window.location.pathname?

    我有反应应用程序是由 create react app 使用笑话和酶进行测试制作的 那么我怎样才能得到的值window location pathname在我的测试文件中 这是我的规格 import React from react imp
  • 无法在远程目录中找到或无法访问 Vagrant box - 不兼容的curl版本

    我刚刚下载了 Vagrant 并进行了设置并安装了 virtual box 我只是无法启动我的项目 vagrant up 我有一个流浪文件等等 我能做些什么 vagrant up Bringing machine default up wi
  • 自定义对象到 JSON 然后返回到自定义对象?

    我见过与此非常相似的问题 但我无法确定它们是否得到了明确的回答 也许我有点笨拙 抱歉 我想要拥有自己的对象的便利性 和清晰度 称其为CardboardBox 它不包含代码 只包含数据 我想将其写入数据库并稍后读回 但显然 它是一种类型Obj
  • 图例中的两种线条样式

    我有一个具有两种线条样式 实线和虚线 的图 我希望它们用于相同的图例条目 下面的代码生成典型的图例 包含两个条目 import matplotlib pyplot as plt import numpy as np xy np linspa
  • Java HashMap 如何处理具有相同哈希码的不同对象?

    根据我的理解我认为 两个对象具有相同的哈希码是完全合法的 如果两个对象相等 使用 equals 方法 则它们具有相同的哈希码 如果两个对象不相等 那么它们不能具有相同的哈希码 我对么 现在 如果正确的话 我有以下问题 这HashMap内部使
  • 如何尽可能高效地处理大量并发磁盘写入请求

    假设以下方法被 net 4 应用程序中的不同线程调用数千次 处理这种情况的最佳方法是什么 了解磁盘是这里的瓶颈 但我希望 WriteFile 方法能够快速返回 数据可达几MB 我们是在谈论线程池 TPL 之类的吗 public void W
  • 如何覆盖在 Spark 中读取 DataFrame 的 parquet 文件

    这是我面临的问题的缩影 我遇到了错误 让我尝试在这里重现它 我正在保存一个DataFrame as a parquet 但是当我重新加载时DataFrame from parquet文件并再次保存为parquet 我收到错误 valuesC
  • lb 指令到底有什么作用?

    我即将进行考试 练习题之一是 假使 假设 t0包含值0x12121212 and t1包含 地址0x1000000 假设内存数据 从地址开始0x1000000 is 88 77 66 55 会有什么价值 t0执行以下代码后 lb t0 0
  • 为什么切片对象在Python中不可散列

    为什么 python 中的切片对象不可散列 gt gt gt s slice 0 10 gt gt gt hash s TypeError Traceback most recent call last
  • Bash 关联字典不起作用(声明:-A:无效选项)

    我已经遵循了每个 bash 字典示例 但没有一个起作用 我现在有了 CONFIG bin bash instance map dev project dev instance map stage project staging declar
  • 针对 switch 语句中的枚举进行编程,这是您的方法吗?

    看一下代码片段 这是我在针对枚举进行编码时通常所做的事情 我有一个带有 InvalidOperationException 的默认转义 我不使用 ArgumentException 或其派生类之一 因为编码是针对私有实例字段而不是传入参数
  • 有没有办法从 Firestore 中仅选择某些字段?

    我正在解决一个函数的性能问题 需要 15 秒才能响应 这会向 firebase 请求所有文档 ErrorID 0 问题是有很多文档 而且它们是非常大的对象 我只需要两个领域 Order and Amount 对于每个文档 有什么方法可以只请
  • 不使用 eval 的嵌套 shell 变量

    我可以摆脱吗eval这里 我正在尝试设置 current database由用户输入确定的适当变量 国家和操作 User input country es action sales Possible variables for curren
  • 如何安装 32 位和 64 位版本的 COM DLL 并“自动选择”?

    我们有一个 DLL COM 服务器 可以在 32 位和 64 位版本中正常编译 但 DLL 对 32 位版本和 64 位版本使用相同的 CLSID 和 AppID 这是可以的还是必须改变 我问这个问题是因为显然在 64 位机器上 我们无法同
  • 如何在 C# 中使用 Java 风格的 throws 关键字?

    在Java中 throws关键字允许方法声明它不会自行处理异常 而是将其抛出给调用方法 C 中有类似的关键字 属性吗 如果没有等效的 如何才能达到相同 或相似 的效果 操作人员正在询问C 相当于 Java 的throws clause 不是
  • 在后台请求 iPhone 位置?

    简单的问题 我有一个应用程序 以 30 秒的间隔记录用户位置 使用 NSTimer 它可以完美地工作 直到应用程序变为 非活动状态 并且 NStimer 停止 因此 我正在寻找保持定位间隔 30 秒 的选项 同时仍然能够记录相当准确的位置数
  • 打印 char 数组的十六进制表示形式[]

    我有一个 8 字节的数组 我正在尝试打印它的十六进制表示法 使用printf x array 我可以得到第一个字节并将其打印出来 但我得到了 0xffffff9b 或类似的东西 有没有办法获得没有 f 的符号 我想打印出每个元素 如下所示
  • 在 QGraphicsView 上绘制小部件(例如按钮)

    如何在 QGraphicsView 上绘制交互式小部件 例如 QButtons 和 Line Edits 例如 我在图像编辑应用程序中选择了图像上的一个区域 该应用程序使用 QGraphicsView 显示图像 并且我想用名称注释该区域 所
  • 更改可折叠工具栏标题的正确方法

    当我更改折叠的 collapsingToolbar 的标题时 标题不会更改 我尝试过 getSupportActionBar setTitle 和collapseToolbar setTitle 但没有帮助 告诉我 有什么问题吗 我相信th
  • 反应路由器,以编程方式导航时传递数据?

    我们可以使用导航到不同的路径 this props router push some path 有没有办法在导航时发送参数 对象 我还能想到其他选择 但不知道是否可以通过object有可能吗 我可以嵌入对象的 id 并从服务器重新获取对象