历史推送不匹配路由。只更改 URL 并默认捕获所有路由

我有带有以下代码的 React Router v5:


索引.js


import React from 'react';

import ReactDOM from 'react-dom';

import App from './App';

import * as serviceWorker from './serviceWorker';

import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';


const muiTheme = createMuiTheme({

  palette: {

    primary: {

        main: '#2196f3'

    }

  },

  overrides: {

    MUIDataTableSelectCell: {

      fixedHeaderCommon: {

        backgroundColor: 'transparent',

      },

    },

    MuiTableCell: {

      sizeSmall: {

        padding: '6px 0 6px 16px'

      }

    },

    MuiTableRow: {

      hover: {

        cursor: 'pointer'

      }

    }

  }

});


ReactDOM.render(<MuiThemeProvider theme={muiTheme}><App /></MuiThemeProvider>, document.getElementById('root'));


serviceWorker.unregister();

应用程序.js


import {

  // BrowserRouter as Router,

  Switch,

  Route,

  Router,

  // Link,

  // useRouteMatch,

  // useParams

} from "react-router-dom";

import history from 'history/browser';

import Dashboard from './common/components/Dashboard';

import Login from './common/components/Login';

import Test from './common/components/Test';



<Router history={history}>

  <Switch>

    <Route path="/test" component={Test} />

    <Route path="/login" component={Login} />

    <Route path="/" exact component={Dashboard} />

    <Route component={Error404} />

  </Switch>

</Router>

每当我使用正确的凭据提交时,我都会从带有 JWT 令牌的服务器获得 200 个响应代码,但在history.push('/test');登录功能后,我没有获得路由匹配,/test而是会Error404捕获所有路由。

这怎么可能?



蛊毒传说
浏览 102回答 1
1回答

千万里不及你

这似乎是历史版本 5 中的错误。请参阅此评论。当我降级到4.10.1它时立即工作
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript