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

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(使用前将#替换为@)

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

  • React PropTypes 与 Flow

    PropTypes 和 Flow 涵盖相似的内容 但使用不同的方法 PropTypes 可以在运行时向您发出警告 这有助于快速找到来自服务器等的格式错误的响应 但是 Flow 似乎是未来 并且具有泛型等概念 是一个非常灵活的解决方案 Nuc
  • 打字稿 - 字符串'不可分配给类型'FC

    我收到以下错误 Type props PropsWithChildren lt amount number gt gt string is not assignable to type FC lt amount number gt Type
  • 如何正确更新反应钩子状态内的数组

    我一直在尝试更新代表反应状态的数组内的对象 当输入的值更改时应该更新该对象 我可以自己找到一种方法来更新它 但我不太确定这是正确的方法 因为当我打开反应开发工具并转到组件选项卡并单击我正在处理的组件时 在输入输入时状态不会立即更新 并且为了
  • React-Native:如何定义 JavaScript 类

    我正在使用本机反应 我需要定义一个类 class myClass email string name string constructor setUser fbid string token string boolean 我试图在它自己的文
  • 仅显示某些路由的组件 - React

    我正在 React 中开发一个带有登录界面的网站 该网站显示一个自定义导航组件 但是我不希望它显示在主路线 即登录页面 上 但据我了解 静态组件不会在路线更改时重新呈现 这准确吗 我正在使用 React Router 来处理所有路由 这是我
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • ant-d upload中如何为removeFile添加PopConfirm一个图片文件

    我正在使用 Ant d Upload 通过本地系统上传文件 然后单击文件预览图像上的删除图标 图像文件将被删除 我想添加一个弹出确认 所以我尝试在 onRemovefunction 中添加确认作为承诺但它不起作用 它在浏览器中显示警报 on
  • 如何修复超出最大调用堆栈大小

    有一个 MERN Firebase 应用程序并收到此错误和一堆 atdeepExtend deepCopy ts 71 RangeError Maximum call stack size exceeded getApps as apps
  • 微前端架构中如何共享redux store?

    我正在尝试创建一个小项目来实现微前端架构 如下微前端 https martinfowler com articles micro frontends html文章 我正在为每个 MFE 微前端 创建多个存储库 并为该应用程序使用 Redux
  • 如何在react-router-dom@v6中使用私有路由

    我想要将私有路由与react router dom v6一起使用 当我尝试应用身份验证条件时 在 App js 中
  • 带有 'as' 属性的通用 React TypeScript 组件(能够渲染任何有效的 dom 节点)

    我在下面的示例中按预期工作 我的问题是 无论如何我可以重写它 这样我就不必传递通用的T和as支柱 理想情况下我想通过asprop 并让组件的 prop 接口使用它 这在 TypeScript 中可能吗 export type Props l
  • 如何通过比较React中同一数组中的Id和reference_id来重新排序数组列表

    这是我得到的数组 id 1 name hello world reference id null id 2 name hello world reference id null id 3 name hello world reference
  • 如何为 HOC 创建共享状态?

    我创造了LoadBookHOC包裹着BookDetails and BookSummary成分 LoadBookHOC js const LoadBookHOC InnerComponent gt class LoadBook extend
  • 如何在 React JS 中根据键创建动态表?

    我正在尝试在 React JS 中创建一个动态表组件 该组件当前只有一个静态标头 其中包括最常见的结果键 有些结果还包含更多信息 例如电话号码 学位 如何根据键 值的存在动态地使用附加列扩展表 我应该与state并在存在时使其可见 或者我应
  • 删除旧版本的 create-react-app

    我想使用创建一个新的反应应用程序create react app脚本 我仍然安装了一个不再受支持的全局版本 因此我卸载了全局版本并尝试创建一个新版本 如下所示 npx create react app myapp 然后我得到了一个没有使用模
  • 重定向时重新初始化类

    我目前在http example com parentdir module 2 此 URL 实际上加载 Module js 类 如以下路由所示
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r

随机推荐

  • 如何使用 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 并从服务器重新获取对象