【问题标题】:Warning: Failed prop type: The prop `history` is marked as required in `Router`, but its value is `undefined`. react-router-dom v^5.2.0警告:失败的道具类型:道具“历史”在“路由器”中标记为必需,但其值为“未定义”。反应路由器dom v^5.2.0
【发布时间】:2021-03-04 20:28:00
【问题描述】:

遇到这个反应路由器错误并且很困惑,因为我已经设置了多个这样的反应应用程序并且从未遇到过问题。我运行了 npm update ,但仍然有问题。似乎其他人也有这个问题,但这是以前的版本。提前感谢您的帮助!

index.js

import ReactDOM from 'react-dom';

import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

App.jsx

import React from 'react';
import { BrowserRouter as Route, Router, Switch } from 'react-router-dom';

import CompanyDetails from './pages/CompanyDetails';
import Home from './pages/Home';
import UpdateCompany from './pages/UpdateCompany';

const App = () => {
  return (
    <Router>
      <Switch>
        <Route exact path='/' component={Home} />
        <Route exact path='/companies/:id/update' component={UpdateCompany} />
        <Route exact path='/companies/:id' component={CompanyDetails} />
      </Switch>
    </Router>
  );
};

export default App;

错误

  • index.js:1 警告:失败的道具类型:道具historyRouter 中标记为必填,但其值为undefined

  • Router.js:20 Uncaught TypeError: Cannot read property 'location' of undefined

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    经过一番调试,我意识到我的导入语句:

    import { BrowserRouter as Route, Router, Switch } from 'react-router-dom';

    需要:

    import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

    我不确定为什么 import 语句的顺序很重要,但如果有人可以向我解释一下,我将不胜感激! ✨

    【讨论】:

    • 不是导入顺序,第一次导入时将BrowserRouter命名为Route,第二次将其命名为Router
    猜你喜欢
    • 2017-12-11
    • 2019-06-25
    • 2018-11-23
    • 1970-01-01
    • 2018-09-22
    • 2020-07-05
    • 2020-12-24
    • 1970-01-01
    • 2022-07-20
    相关资源
    最近更新 更多