首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用react路由器<Link>时向路由传递道具

如何在使用react路由器<Link>时向路由传递道具
EN

Stack Overflow用户
提问于 2019-12-24 20:38:38
回答 1查看 5.4K关注 0票数 6

我正在尝试将道具传递给Link元素的路由。但是当我打开invoiceDetails组件时,我说props是未定义的。

下面是我尝试通过道具的方法。它是正确设置的,因为它转到了InvoiceDetails组件。我在index.js中声明了路由

代码语言:javascript
复制
<Link props={{name: 'jack', age: 25, city: 'Antwerp'}}to='/InvoiceDetails'><p>VIEW</p></Link>

在InvoiceDetails组件中

代码语言:javascript
复制
import React from 'react'
import DashboardHeader from '../dashboardHeader/dashboardHeader'
import { Link } from 'react-router-dom'
function InvoiceDetails(){
console.log(props)
    return(
        <div className='w-10/12 bg-gray-300 float-right min-h-screen'>
          <div className='w-10/12 fixed z-50'>
.........
)
}
export default invoiceDetails

我想使用从全局redux状态获得的变量将属性传递给invoicedetails组件。现在静态数据很好,我想同样的原则也适用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-24 20:42:43

你可以通过提及state中的道具来通过它。

代码语言:javascript
复制
<Link
  to={{
    pathname: "/InvoiceDetails",
    state: { name: 'jack', age: 25, city: 'Antwerp'}
  }}
/>

阅读更多关于它的here

要在您的下一个组件中使用它,您必须使用react-router-dom HOC withRouter包装您的组件,或者使用它们提供的useLocation钩子。

EX-在第二个组件中-

代码语言:javascript
复制
import {useLocation} from "react-router-dom";

function Child() {
 let data = useLocation();
 console.log(data); //state would be in data.state//
}
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59468974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档