react跳转页面并传参数(react 跳转后路由变了页面没刷新的解决方案)
类别:编程学习 浏览量:2200
时间:2021-10-28 10:36:45 react跳转页面并传参数
react 跳转后路由变了页面没刷新的解决方案目录
- 问题
- 解决方案
这样的问题貌似原因还挺多的,我的问题是带参数的url不能刷新,router 5.0版本 ,使用withRouter关联组件进行页面跳转
如下所示
路由代码
在路由组件上最上层元素上加一个key增加路由的识别度,因为普通的跳转是根据path来识别的,但是path带上参数时,路由无法精确识别。不过,在跳转页面的时候,每个地址都会在localtion对象里添加一个key。如下打印
// 组件挂载 componentDidMount() { console.log(this.props.location); }
我们将这个key绑定在 路由顶层元素上就能精确定位路由了
render() { return ( {/*就是这个key*/} <li 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> </li> ); }
然鹅,可能你发现 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 ( <li key={this.props.location.key}> </li> ); } } export default withRouter(routers);
到此这篇关于react 跳转后路由变了页面没刷新的解决方案的文章就介绍到这了,更多相关react 跳转后页面没刷新内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- react动态添加组件属性(react使用antd的上传组件实现文件表单一起提交功能完整代码)
- react常用设计模式(提高React界面性能的十个技巧)
- react怎样实现响应式计算属性(深入浅析React中diff算法)
- react初学难点(使用react的7个避坑案例小结)
- react执行流程(React开启代理的2种实用方式)
- react组件之间通信(React传递参数的几种方式)
- react加载优化(React星星评分组件的实现)
- react的动画实现(React实现动效弹窗组件)
- react怎么使用父组件(关于antd tree和父子组件之间的传值问题react 总结)
- react高阶组件怎么用(React 高阶组件HOC用法归纳)
- reactmap给了key仍然提示错误(react为什么不推荐使用index作为key)
- react 组件如何发布(React如何创建组件)
- react基础知识详解(如何深入理解React的ref 属性)
- react的setstate第二个参数(示例详解react中useState的用法)
- react循环有几种方法(React forwardRef的使用方法及注意点)
- reactnative零基础入门到项目实战(用React Native制作一个简单的游戏引擎)
- 古人十句 戒骄 名言,醍醐灌顶,受益匪浅(古人十句戒骄名言)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
热门推荐
- 如何将tomcat源码以maven方式运行(如何将tomcat源码以maven方式运行)
- dedecms栏目列表(dedecms子栏目中调用其顶级栏目名称和简介的方法)
- docker怎么部署node-exporter(Docker搭建部署Node项目的方法步骤)
- 云服务器和虚拟空间有什么区别(云服务器、虚拟机是一样的吗?有什么不同?)
- idea 部署到tomcat 的项目在哪儿(使用IDEA创建Web项目并发布到tomcat的操作方法)
- nginx 配置解析(Nginx的rewrite模块详解)
- python的turtle库怎么画同心圆(详解python使用turtle库来画一朵花)
- sqlserver定时计划(sql server deadlock跟踪的4种实现方法)
- sql server性能调优(SQL Server性能调优之缓存)
- 如何提高nginx性能(提升Nginx性能的一些建议)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9