当前位置: 首页 > 面试题库 >

通过React-Router v4传递值

夏昊
2023-03-14
问题内容

问:如何通过React-Router的Link组件传递prop或单个值(如_id),并在端点捕获它?

这就是我的意思:假设我们在/ a页上。链接会将用户带到/ b。就这样<Link to='/b'>。现在,我需要通过链接将_id从/ a传递到/ b。

<Link to='/b' params={_id}>blah blah</Link>

我要传递的id是其中嵌套了Link组件的对象的属性。

params={}在另一个StackOverflow线程中发现了这种语法。我的代码编译时没有中断,所以这可能意味着它起作用了吗?但是,我不确定如何在端点上检索此传递的值。

任何帮助将不胜感激。


问题答案:

传递道具

您可以通过state对象将任意道具传递到路线:

<Link to={{ pathname: '/route', state: { foo: 'bar'} }}>My route</Link>

然后,您可以state从组件内部访问对象:

const {foo} = props.location.state

console.log(foo) // "bar"

传递参数

配置您的路由路径以接受命名参数(:id):

<Route path='/route/:id' exact component={MyComponent} />

然后,您可以在链接中传递URL参数(例如ID)to

<Link to={`route/foo`}>My route</Link>

您可以通过match对象在组件内访问参数:

const {id} = props.match.params

console.log(id) // "foo"

资料来源

  • https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/location.md

  • https://github.com/ReactTraining/react-router/issues/4036



 类似资料:
  • 问题内容: 没有参数 带参数 我想得到。我怎么才能得到它? 问题答案: 试试这个: 并在您的职能:

  • 问题内容: 我只是在 文档中读到以下错误,它将影响渲染时间。如果是这种情况,我该如何重构代码并使用所需的道具来创建动态样式? 先感谢您。 标签组件 问题答案: 我相信文档在说的是您应该避免在渲染组件中包含样式: 做这个 代替这个 因为发生的是组件的Props更改,所以组件将重新渲染并且样式将重新生成。因此,有必要将其分开。 因此,如果您进一步阅读 基于道具 的 适应 部分,他们将对此进行解释: 之

  • 请考虑以下示例: 我希望将值传递到中,作为哑输入组件的道具。然而,它从不重新呈现它。

  • 问题内容: 如何使用将值传递给页面? 问题答案: 应该工作正常。 这里有两个选项,它们打开HTTP POST,并包含要提交的数组数组。可用于向 s 提交数据。 重要的是要注意,$ data采用两种格式,并且这决定了将如何编码邮政数据。 as :数据将以服务器并不总是接受的方式发送。 curl_setopt($handle, CURLOPT_POSTFIELDS, $data); 作为url编码的字

  • 问题内容: 我真的是Swift的新手,我刚刚读到类是通过引用传递的,并且复制了数组/字符串等。 通过引用进行传递是否与在Objective-C或Java中通过“ a”引用进行传递的方式相同,还是通过引用进行正确传递? 问题答案: Swift中的事物类型 规则是: 类实例是 引用类型 (即, 您 对类实例的引用实际上是一个 指针 ) 函数是参考类型 其他一切都是 价值类型 ; “其他所有内容”仅表示

  • 问题内容: Go中的地图是否通过值或引用传递? 始终可以将函数定义为以下形式,但这是一个过大的杀伤力吗? 相同的返回值问题。我应该返回指向地图的指针,还是将地图作为值返回? 这样做的目的当然是避免不必要的数据复制。 问题答案: 在此线程中,您将找到答案: Golang:使用地图参考来访问地图 您不需要在地图上使用指针。 映射类型是引用类型,例如指针或切片[1] 如果需要更改会话,可以使用一个指针: