react-app+react-router-dom路由跳轉頁面不渲染,或者不變化
路由配置:
import React from 'react' import {Router, Route, Switch} from 'react-router-dom' //BrowserRouter as import { createBrowserHistory } from 'history' import Login from './login';//普通加載模塊 import Main from './main'; const history = createBrowserHistory(); class RouteMap extends React.Component { render () { return ( <Router history={ history }> <Switch > <Route path="/" exact component={Login}/> <Route path="/login" component={Login}/> <Route path="/main" component={Main}/> {/*<Redirect from="/*" to="/404"/>*/} </Switch> </Router> ) } } export default RouteMap //_this.props.history.push('/main')//跳轉可后退 //_this.props.history.replace('/main')//跳轉不可后退 // <Redirect from="/*" to="/" /> //重定向 // <Route path="*" component={NotFound404}/>//默認
重點來了~!!!!!!!!!!!
可以看到代碼上面有一個注解 BrowserRouter as,網上有很多人說加上它,但是我覺得沒有解決根本問題
當路由加上 BrowserRouter as Router 的時候可以跳轉,但是頁面會報錯,提示你
tiny-warning.esm.js:11 Warning: <BrowserRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { BrowserRouter as Router }`.
身為強迫症患者 怎么能容忍這個警告!!經過我仔細對比 終於發現問題所在, history
history
history
history
創建項目的時候我是直接安裝 npm i history npm i react-router-dom 從而忽略版本這個問題,造成頁面不出來
然后就出現上面的錯誤,經過我篩選才發現這個問題所在,特此謹記,然后我安裝
npm i history@4.1.0 解決!!!!!!
網上查找原因:
眾所周知 react-router-dom 是基於 react router 的 ,而它的版本還沒有更新到。汗啊!!