程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法使用 react-router-dom 5.2 读取未定义的属性“推送”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法使用 react-router-dom 5.2 读取未定义的属性“推送”?

开发过程中遇到无法使用 react-router-dom 5.2 读取未定义的属性“推送”的问题如何解决?下面主要结合日常开发的经验,给出你关于无法使用 react-router-dom 5.2 读取未定义的属性“推送”的解决方法建议,希望对你解决无法使用 react-router-dom 5.2 读取未定义的属性“推送”有所启发或帮助;

我正在尝试创建一个侧边栏组件来构建我的菜单,但是当我单击一个菜单项并尝试使用 react-router-dom push 重定向到该路由时,我收到错误 {{1 }}。

我在这里遗漏了什么?

App.tsx

CAnnot read property 'push' of undefined

路由器.tsx

import './App.CSS';
import Router from './Router'

function App() {
  return (
    <Router  />
  );
}

export default App;

侧边栏.tsx

import {
  Switch,Route
} from 'react-router-dom';
import { ProvIDer } from 'react-redux';
import { ConnectedRouter } from 'connected-react-router/immutable';
import configureStore,{ history } from './store';
import { routes } from './shared/constants';
import Login from './features/auth/vIEws/Login';
import PatIEntPage from 'features/patIEnt/vIEws/PatIEntPage';
import PatIEntForm from 'features/patIEnt/vIEws/PatIEntForm';
import SIDebar from 'shared/components/SIDebar';

const store = configureStore();

const Router = () => (
  <ProvIDer store={storE}>
    <ConnectedRouter history={history}></ConnectedRouter>
    <SIDebar>
      <Switch>
        <Route exact path={routes.home.path} component={Login} />
        <Route exact path={routes.patIEnts.path} component={PatIEntPagE} />
        <Route exact path={routes.newPatIEnts.path} component={PatIEntForm} />
      </Switch>
    </SIDebar>
  </ProvIDer>
);

export default Router;

解决方法

需要用 BrowserRouter 包装 App.js

import './App.css';
import Router from './Router'
import {BrowserRouter} from "react-router-dom"

function App() {
  return (
<BrowserRouter>
    <Router  />
</BrowserRouter>
  );
}

export default App;

大佬总结

以上是大佬教程为你收集整理的无法使用 react-router-dom 5.2 读取未定义的属性“推送”全部内容,希望文章能够帮你解决无法使用 react-router-dom 5.2 读取未定义的属性“推送”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。