前端项目升级到React-router5中遇到的问题解决方案以及思路
我胡汉三有日子没回来写写文章了,最近一直再忙着将老项目升级,所以没时间来搞文章,今天突然感觉开了挂一样,爱因斯坦附体,把之前的bug都搞定了,在这里特意把升级中遇到的问题,记录下来,算是把这个坑填上。
场景:react-router2.2.4 ---> 5.0.1
主要发生了两个问题:
1.路由跳转之前用了browserHistory.push() 抛错:Cannot read property 'push' of undefined
2.react-router中的Link组件 抛错:type is invalid
问题一的解决与思考:
解决方案:使用this.props.history.push()
出现原因:react-router5.0.1已经不存在browserHistory这个对象
解决思路:1.当抛出错误后,打了debugger,结果:发现browserHistory是undefined
2.将 import {browserHistory} from 'react-router' 改为 import * as Rtest from 'react-router',并在后面打印出Rtest,结果:发现Rtest 中并没有browserHistory对象
在此已经怀疑是版本问题,因为给react-router升级到了5.0.1
3.翻看之前的版本(2.2.4),发现存在browserHistory,确定问题:问题为react-router版本升级导致之前的写法出现错误
问题二的解决与思考
解决方案:从react-router-dom中引入,inport {Link} from 'react-router-dom'
出现原因:Link组件被从react-router移动到了react-router-dom中
解决思路:1.找到Link组件,发现Link组件的使用没问题,看了抛错,结果:Link组件不存在
2.本想直接删除掉Link组件,自己手动实现一个,后查了一下发现Link组件被移入了react-router-dom中。
总结:看了一下,react-router后来的版本和之前的版本区别还是蛮大的,升级的话,基本上大部分地方都需要动一动,但是改起来还是很便捷的。
好了,今天就记录到这。我胡汉三看文档去了,告辞!
- 最近做网页前端项目时遇到的一些问题以及解决方案
- 升级xcode7 和 iOS9 后遇到的问题以及解决方案
- ubuntu将svn项目迁移到git步骤以及遇到问题的解决方案
- reindex-maven 私服(nexus)架设以及项目管理中遇到的问题及解决方案(updating)
- maven 私服(nexus)架设以及项目管理中遇到的问题及解决方案
- 项目中遇到的问题以及解决方案(Java后台)
- android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
- 项目中遇到的一些需要重构的问题以及解决方案1-应该尽量减少缩进层次
- React路上遇到的那些问题以及解决方案
- 升级到AndroidStudio3.0之后项目打包遇到的问题及解决方案
- 安卓项目升级 4000 sdk和第三方库遇到的问题及解决方案
- CocoaPods版本升级遇到问题以及解决方案
- vue项目遇到的问题以及解决方案
- 项目管理中遇到的问题以及解决方案(网络转载)
- npm打包前端项目太慢问题分析以及暂时解决方案
- 升级xcode7 和 iOS9 后遇到的问题以及解决方案
- 关于react-native 运行项目中遇到could not connect to development server的问题
- 前端遇到的跨域问题及解决方案一
- webpack+react+antd项目编写过程中遇到的问题
- WP手机升级到WP8.1之后一些功能的吐槽和没有Cortana,改变绿色图标的问题的解决方案以及怎样调戏Cortana