使用路由时将 match param 和 props 传递到 React 组件中

2024-03-08

我有一个功能性反应组件,想要为我的组件中选定的人呈现一些属性。

所以我首先绘制一个简单的列表,其中包含每个人的链接

      {props.persons.map((person, i) =>{
      return(
     <li key={i}>
      <Link to={`/topics/${person.id}`}>{person.name}</Link>
     </li>
      )
    })}
  </ul>

然后我制定路线

<Route path={`/topics/:id`} render={() => <Topic persons={props.persons} />} />

到目前为止,我只是传递这些人。

不过我也希望能够传递 id,这样我就可以找到特定的人,并呈现有关该人的信息。我尝试过使用匹配属性,但这似乎也禁止我传递道具。

有什么建议可以解决这个问题吗?

也许可以只传递所选人员的属性?

EDIT:

这是我到目前为止所尝试过的。

   const Topic = (props) =>{
  console.log('props are ', props) //logs array of persons
  return(
    <div>
      <h2>Topic</h2>
      <p>I have been rendered</p>
    </div>
  )
}




 const Topic = ({match}) =>{
  console.log('match is ', match) //logs match parameter, but now i can't access persons
  return(
    <div>
      <h2>Topic</h2>
      <p>I have been rendered</p>
    </div>
  )
}

当您使用render支撑在一个<Route>组件,即render函数传递一个对象match, location, and history信息。

https://reacttraining.com/react-router/web/api/Route/route-props https://reacttraining.com/react-router/web/api/Route/route-props

<Route 
  path={`/topics/:id`} 
  render={({match}) => (
    <Topic id={match.params.id} persons={props.persons} />
  )} 
/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用路由时将 match param 和 props 传递到 React 组件中 的相关文章

  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • 如何使用键盘和鼠标控制相机 - Three.js

    我在 WEB GL 中有一个带有 Three js 的 3D 环境 并且我曾经使用 Orbitcontrols js http codepen io nireno pen cAoGI http codepen io nireno pen c
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 如何将中间件绑定到socket.io中的事件

    现在您可以将中间件绑定到io use middleware 但这仅在建立套接字连接时触发 有没有办法在将其传递给事件句柄之前拦截它 就像在expressjs中一样 换句话说 In 快递 js你可以做 app get middleware1
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • KeyboardEvent.keyCode 已弃用。这在实践中意味着什么?

    根据 MDN 我们绝对应该not正在使用 keyCode财产 它已被弃用 https developer mozilla org en US docs Web API KeyboardEvent keyCode https develope
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • ES6 模板文字的延迟执行

    我正在玩新的ES6 模板文字 http tc39wiki calculist org es6 template strings 我首先想到的是String format对于 JavaScript 所以我开始实现一个原型 String pro
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li

随机推荐

  • DirectUI 的真相是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个 Windows 桌面应用程序 它需要一个很棒的 UI 我现在使用Visual Studio和MFC 后来听说DirectU
  • 如何获取 MySQL 数据库的最后访问(和/或写入)时间?

    如何查明 MySQL 数据库上次读取或写入的时间 您甚至可以对每张桌子进行检查吗 SELECT UPDATE TIME FROM INFORMATION SCHEMA TABLES WHERE TABLE SCHEMA dbname AND
  • 托管和非托管 C++/MFC 可以混合在一个 dll 中吗?

    以前 我们有 MFC VC6 VB6 和 C 应用程序中的软件 需要调用用 C 和 MFC 编写的相同引擎 该引擎需要 C 来提高速度 当时我们决定使用 COM 作为接口 因为所有三个都可以使用它 并且在编组等方面的问题最少 我们的 MFC
  • 在 SQL Server 中存储图像?

    我制作了一个小型演示网站 并在其上将图像存储在 sql 服务器上的图像列中 我有几个问题是 这是一个坏主意吗 当我的网站增长时 它会影响性能吗 另一种方法是将图像存储在光盘上 并且仅将图像的引用存储在数据库中 这想必是很多人都曾遇到过的共同
  • 使用 docker-compose 将 Gitlab CI/CD 转至 Digital Ocean 以实现多个存储库

    目前我在 Gitlab 中有一个项目 repo 它是一个角度应用程序 我使用 Gitlab CI CD 来构建 测试 发布和部署 发布将构建一个新的 docker 镜像 将其推送到 Gitlab 注册表 然后将其部署到我的 Digital
  • 有人对以这种方式使用黑板模式有想法吗?

    有人对 实用程序员 第 165 页中的 Blackboard 概念有什么想法吗 我想要几个彼此独立的小子系统 DLL 和 EXE 有一些程序集将被所有 EXE 使用 这些程序集几乎都使用相同的数据库 Blackboard 类型模式不是使用接
  • 确定对不正确的 .NET Framework 版本的间接依赖的来源

    我想知道如何确定此构建错误的来源 Warning 4 The primary reference MyNamespace MyProject could not be resolved because it has an indirect
  • 仅当值不为空时 PHP/MYSQL 更新

    我正在构建一个表单来更新多列数据 这段代码对于我的目的来说已经部分成功 剩下要做的唯一一件事就是包含 如果 IS NOT NULL 更新查询 我不知道该怎么做 换句话说 我只希望在 POST 值不为空时执行 UPDATE
  • Magento 网站突然出现“未收到数据”错误代码:ERR_EMPTY_RESPONSE

    我们在电子商务网站上运行 Magento 最近几天似乎有些非常重要的页面根本无法加载 网站上的大部分页面加载良好 但是如果用户 登录 并且他们尝试访问购物车结帐页面 迄今为止最重要的页面 他们会收到下图所示的非常令人讨厌的消息 据我所知 最
  • 从 WebJob 中停止网站

    有什么方法可以阻止 WebJob 访问 Azure 网站吗 我有一个使用 Ghost 在 Node 上运行的 Azure 网站 我正在尝试安排 Ghost 数据库文件的备份 最好在站点未运行时进行备份 我可以通过使用 Kudu PowerS
  • 如何防止外部脚本使用break语句终止脚本

    我正在调用一个外部 ps1 文件 其中包含break某些错误情况下的语句 我想以某种方式捕获这种情况 允许任何外部打印的消息正常显示 并继续执行脚本中的后续语句 如果外部脚本有throw 这可以很好地使用try catch 即使trap在我
  • 如何将 ExpandableListView 放入 ScrollView 中而不使其折叠?

    我想在 ScrollView 中使用 ExpandableListView 与其他视图 但我在 ExpandableListView 中遇到了自滚动器的问题 我尝试禁用它 但问题在于 ExpandableListView 的高度及其内部布局
  • 如何在不使用任何库的情况下检测android中的IBeacon

    我是 Ibeacon 的新手 我想知道我们是否可以在不使用任何 SDKLibrary 或库的情况下检测 Android 中的 Ibeacon 任何人都可以给出示例 我知道一些像 Radius Networks 这样的库 但我不想使用任何图书
  • CSS min-width 不显示水平滚动条

    我建立了一个网站 并使用了最小宽度 css body overflow auto min width 1600px 但是当它以较小的分辨率加载时 它不会出现水平滚动条 我应该怎么做才能出现水平滚动条 您无需声明overflow如果您希望滚动
  • MKMapView 调用 didSelectAnnotationView

    I use MKMapView 在地图上我显示可点击AnnotationViews 点击后AnnotationView 我将 MyController 推送到NavigationController 在 MyController 中 我单击
  • 流构建器在导航后未更新

    我正在使用流生成器来检测用户是否登录 return StreamBuilder
  • DropzoneJS 和 Laravel - 输出表单验证错误

    当您将鼠标悬停在 Dropzone 中丢弃的文件中的 X 上时 我试图输出表单验证错误 我得到什么 我怎样才能使object Object从表单验证中输出实际的错误消息 我可以警告错误消息 但将鼠标悬停在 x 上时实际上无法显示错误消息 我
  • 编辑 RichTextBox Run 元素而不拆分为多个 Run 元素 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个 WPF 应用程序RichTextBox 文本框中的文本通过跨度以编程方式构建并运行到一个段落 每个句子都是一个
  • 中继器中的 ASP.NET RadioButtonList?

    aspx 文件
  • 使用路由时将 match param 和 props 传递到 React 组件中

    我有一个功能性反应组件 想要为我的组件中选定的人呈现一些属性 所以我首先绘制一个简单的列表 其中包含每个人的链接 props persons map person i gt return li person name li 然后我制定路线