1. 程式人生 > 實用技巧 >creact-react-app+react-route-dom路由跳轉頁面不渲染,或者不變化

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 }`.

身為強迫症患者 怎麼能容忍這個警告!!經過我仔細對比 終於發現問題所在,historyhistoryhistoryhistory

建立專案的時候我是直接安裝 npm i historynpm i react-router-dom 從而忽略版本這個問題,造成頁面不出來

然後就出現上面的錯誤,經過我篩選才發現這個問題所在,特此謹記,然後我安裝npm i [email protected] 解決!!!!!!

網上查詢原因:

眾所周知 react-router-dom 是基於 react router 的 ,而它的版本還沒有更新到。汗啊!!