✨React路由动态传参,页面刷新参数丢失 问题解决

28 篇文章 0 订阅
15 篇文章 0 订阅
本文介绍如何在React应用中使用sessionStorage来保存路由参数,确保页面刷新时参数不会丢失。通过监听history对象的state,并将其存储在sessionStorage中,可以在页面加载时恢复参数。
摘要由CSDN通过智能技术生成

路由传参,刷新页面参数丢失问题
这里的history只需要将路由里面history参数 传入就可以了,采用的 sessionStorage 存储,达到页面刷新参数不丢失的一个问题。

// 解决路由传参 页面刷新丢失问题`在这里插入代码片`
export const RouteStateD = (history) => {
  let urlData;
  if (history.location.state) {
    urlData = history.location.state;
    sessionStorage.setItem('urlD', JSON.stringify(urlData));
  } else {
    urlData = JSON.parse(sessionStorage.getItem('urlD'));
  }
  return urlData;
};

如果有帮助到你 麻烦给一个三连+关注,能看到博主的最新blog
感谢感谢
在这里插入图片描述

React中,可以使用React Router来解决路由传参问题。下面是一种常见的解决方案: 1. 使用react-router-dom库来安装和管理路由功能。可以使用以下命令来安装: ``` npm install react-router-dom ``` 2. 在你的应用程序中引入`BrowserRouter`和`Route`组件。`BrowserRouter`用于包装整个应用程序,而`Route`用于定义路由。 ```jsx import { BrowserRouter, Route } from 'react-router-dom'; const App = () => { return ( <BrowserRouter> <Route path="/your-route" component={YourComponent} /> </BrowserRouter> ); }; ``` 3. 在需要传递参数的组件上,可以使用路由的`params`或`query`来传递参数。 使用`params`传递参数的示例: ```jsx import { useParams } from 'react-router-dom'; const YourComponent = () => { const { id } = useParams(); return <div>{id}</div>; }; ``` 使用`query`传递参数的示例: ```jsx import { useLocation } from 'react-router-dom'; const YourComponent = () => { const location = useLocation(); const queryParams = new URLSearchParams(location.search); const id = queryParams.get('id'); return <div>{id}</div>; }; ``` 4. 在路由链接中,可以通过将参数添加到链接的路径或查询字符串中来传递参数。 使用`params`传递参数的示例: ```jsx import { Link } from 'react-router-dom'; const YourComponent = () => { return ( <Link to="/your-route/123">Link</Link> ); }; ``` 使用`query`传递参数的示例: ```jsx import { Link } from 'react-router-dom'; const YourComponent = () => { return ( <Link to="/your-route?id=123">Link</Link> ); }; ``` 这样,你就可以在React中使用React Router来解决路由传参问题了。具体的参数传递方式可以根据你的需求来选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小朋友120

谢谢你拉近我与星星的距离

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值