我正在做一个项目,我必须将数据从一个页面传递到另一个页面。例如,我在第一页上有data
。
let data = [
{id:1, name:'Ford', color:'Red'},
{id:2, name:'Hyundai', color:'Blue'}
]
这是第一个组件页面,我在其中呈现了名称为的数据列表。
class ListDetail extends Component {
constructor();
handleClick(data){
console.log(data);
}
render() {
return (
<div>
<Hello name={this.state.name} />
<ul>
{data.map((data,i) => {
return <li onClick={this.handleClick.bind(this,data)}>{data.name}</li>
})}
</ul>
</div>
);
}
}
我想把这些数据传递到下一页,在那里我需要这些数据和更多的数据。我正在使用React路由器4。任何建议或帮助将是有益的。
9条答案
按热度按时间c86crjj01#
你可以使用react-router中的Link组件,并指定
to={}
作为一个对象,在该对象中你指定pathname作为要到达的路由。然后添加一个变量(例如data
)来保存你想要传递的值。参见下面的示例。使用
<Link />
组件:使用
history.push()
使用上述任一选项,您现在可以访问location对象上的
data
,如下所示。型
您可以在另一个示例here中看到如何将值与路由沿着传递的示例。
p8h8hvxi2#
将数据传递到目标组件的最佳方法,只需复制粘贴代码,就能看到它的神奇之处,我也深入地解释了它。
**记住:**在react-router-dom v6中,您可以使用钩子。
第5.X版
假设我们有两个组件,第一个组件有指向第二个组件的链接。
链接所在的第一个组件,通过单击该链接,您将转到目标路径,在我的示例中,它是:
"/details"
.现在,在第二个组件中,您可以按以下方式访问传递的对象:
注:在react-router-dom的版本6中,上述方法不能用于类组件,尽管你可以通过useLocation钩子使用react的函数组件,然后你可以通过另一个组件中的那个位置绘制状态对象。
第6版
如何使用react-router-dom的钩子v6实现相同功能
假设我们有两个功能组件,第一个组件A,第二个组件B。组件A希望与组件B共享数据。
钩子的用法:(使用位置,使用导航)
型
现在我们将获取组件B中的数据。
fcg9iug33#
您可以使用react-router的
Link
组件并执行以下操作:然后使用
this.props.location.state
访问数据您还可以考虑在整个应用程序中使用redux进行状态管理(https://redux.js.org/)。
kpbwa7wx4#
如何在reactjs中将数据传递到另一个组件路由器
Login.jsx
welcome.jsx
5kgi1eie5#
通过导航传递数据非常简单。(到另一个组件)
“"“假设您需要使用navigate传递“value.id“,请尝试此操作”"”
“"“然后在“用户更新”组件中=〉""”
型
“"“这里是value.id“"”
w3nuxt5m6#
假设你的另一个页面是一个组件,你可以把数据作为一个 prop 传递给下一个页面,但需要注意的是,你必须使用
react-router 4
中可用的<Link />
组件,而不是使用<a></a>
,这会导致整个页面重新加载,从而使数据访问丢失。taor4pac7#
当你想发送一个页面在一个对象相同的代码如下,你必须导入你的页面在你的目标文件,并再次导入你的页面在你的目标文件相同:
在你的目标文件中你必须Map你的对象...
5sxhfpxr8#
状态数据,当前数据在
Checkout.tsx
页上,传递App.tsx
页上的状态数据(使用 typescript )checkout .tsx页面
应用程序tsx页面
dddzy1tm9#
我正在使用React路由器域****6.4.3
以下内容似乎适用于其他/早期版本,但不适用于6.4.3:
进行了一个小的更改,以下内容可以替代:
注意到state对象现在是如何在***to***对象之外的吗?
在“详细信息”(Details)页面中,您可以按如下方式接收对象:
型