我的编程空间,编程开发者的网络收藏夹
学习永远不晚

react路由返回时不刷新怎么办

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

react路由返回时不刷新怎么办

react路由返回时不刷新怎么办

本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。

react路由返回时不刷新怎么办?

react 跳转后路由变了页面没刷新的解决方案

最近在学习React的过程中遇到了路由跳转后页面不刷新的问题,本文就详细的介绍一下解决方法,需要的朋友们下面随着小编来一起学习学习吧

问题

这样的问题貌似原因还挺多的,我的问题是带参数的url不能刷新,router 5.0版本 ,使用withRouter关联组件进行页面跳转

如下所示

5e0d5eb4e7dec7ac09594cf9e6167cd.jpg

路由代码

b438e8f1e45f639423b73d1dcb0cca0.jpg

解决方案

在路由组件上最上层元素上加一个key增加路由的识别度,因为普通的跳转是根据path来识别的,但是path带上参数时,路由无法精确识别。不过,在跳转页面的时候,每个地址都会在localtion对象里添加一个key。如下打印

// 组件挂载
 componentDidMount() {
   console.log(this.props.location);
 }

ccf4d9823d05a5de15dd779eaa1d45a.jpg

我们将这个key绑定在 路由顶层元素上就能精确定位路由了

render() {
   return (
     {}
     <div key={this.props.location.key}>
         <Switch>
           <Route exact path="/" component={Home} />
           <Route exact path="/products/:id" component={Products} />
           <Route exact path="/about" component={About} />
           <Route exact path="/solution" component={Solution} />
           <Route
             exact
             path="/solutionDetails/:id"
             component={SolutionDetails}
           />
           <Route exact path="/download" component={Download} />
           <Route path="/about" component={Download} />
           <Route exact path="/details/:id" component={Details} />
           <Route path="/contact" component={Contact} />
           <Route component={ErrorPage} />
         </Switch>
     </div>
   );
 }

然鹅,可能你发现 this.props为{} 空对象

那可能是因为你没有使用withRouter关联组件,关联一下就好了。注意一点,app.js无法关联,withrouter只能关联路由组件或者app.js的子组件

import React, { Component } from "react";
import {withRouter } from "react-router";
 
class routers extends Component {
 
 // 组件挂载
 componentDidMount() {
   console.log(this.props.location);
 }
 render() {
   return (
     <div key={this.props.location.key}>
     </div>
   );
 }
}
export default withRouter(routers);

以上就是react路由返回时不刷新怎么办的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

react路由返回时不刷新怎么办

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

react路由返回时不刷新怎么办

react路由返回时不刷新的解决办法:1、在路由组件上最上层元素上加一个key增加路由的识别度;2、将key绑定在路由顶层元素上,精确定位路由;3、使用withRouter关联下组件即可。
2023-05-14

react路由返回时不刷新如何解决

这篇文章主要介绍“react路由返回时不刷新如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react路由返回时不刷新如何解决”文章能帮助大家解决问题。react路由返回时不刷新的解决办法:1
2023-07-04

react路由页面不刷新怎么办

react路由页面不刷新的解决办法:1、在“index.js”文件中查看App组件是否被包裹在“<BrowserRouter></BrowserRouter>”之中;2、在“<Switch>”下的“<Route exact path="" component={}/>”添加“exact”。
2023-05-14

react 不自动刷新怎么办

react不自动刷新的解决办法:1、找到“package.json”文件所在的目录;2、在“package.json”同级根目录下创建“.env”文件;3、在“.env”文件中写入“FAST_REFRESH=false”并保存即可。
2023-05-14

Vue路由this.route.push跳转页面不刷新怎么办

本篇内容主要讲解“Vue路由this.route.push跳转页面不刷新怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue路由this.route.push跳转页面不刷新怎么办”吧!Vu
2023-07-04

react刷新找不到页面怎么办

react刷新找不到页面的解决办法:1、找到并打开“app.jsx”文件;2、在“app.jsx”里面定义路由协议的时候通过“class App extends Component {render() {return (<Layout className="layout"><Router><div><Nav /><MinContent /></div>...”代码定义即可。
2023-05-14

php怎么实现返回不刷新页面

PHP页面不刷新实现方法:AJAX:异步请求和响应,不刷新整个页面。JSON:轻量级数据格式,方便客户端和服务器数据传输。WebSocket:双向通信协议,实时数据交换。流式响应:分块输出数据,渐进式加载页面。服务端渲染(SSR):服务器端生成HTML,预渲染页面发送给客户端。
php怎么实现返回不刷新页面
2024-04-25

php怎么实现返回不刷新页面

php实现返回不刷新页面的方法:1、打开相应的PHP代码文件;2、通过“echo"<script>alert('...');history.go(-1);</script>";”语句实现返回不刷新页面即可。
2018-11-23

php返回时间不对怎么办

php返回时间不对的解决办法:1、通过“phpinfo();”函数查看php.ini的位置;2、修改php.ini文件里面的“date.timezone”为“Asia/Shanghai”;3、打开需要用到date的代码文件,在代码开始加一句“date_default_timezone_set('Asia/Shanghai');”即可。
2023-05-14

编程热搜

目录