場景:react-router2.2.4 ---> 5.0.1react
主要發生了兩個問題:react-router
1.路由跳轉以前用了browserHistory.push() dom
拋錯:Cannot read property 'push' of undefinedthis
2.react-router中的Link組件 debug
拋錯:type is invalid3d
問題一的解決與思考:router
解決方案:使用this.props.history.push()cdn
出現緣由:react-router5.0.1已經不存在browserHistory這個對象對象
解決思路:1.當拋出錯誤後,打了debugger,blog
結果:發現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後來的版本和以前的版本區別仍是蠻大的,升級的話,基本上大部分地方都須要動一動,可是改起來仍是很便捷的。
好了,今天就記錄到這。我胡漢三看文檔去了,告辭!