creact-react-app+react-route-dom路由跳轉頁面不渲染,或者不變化


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 的 ,而它的版本還沒有更新到。汗啊!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM