自关闭一个组件后出现无效钩子调用错误

时间:2021-03-11 09:33:51

标签: javascript reactjs react-hooks react-dom

错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一造成的:

  1. 您的 React 和渲染器版本可能不匹配(例如 React DOM)
  2. 你可能违反了钩子规则
  3. 您可能在同一个应用中拥有多个 React 副本 有关如何调试和解决此问题的提示,请参阅 reactjs.org/link/invalid-hook-call。
<块引用>

./src/index.js/

5 |从'./reportWebVitals'导入reportWebVitals; 6 |进口 "../node_modules/bootstrap/dist/css/bootstrap.min.css"; 7 |进口 { BrowserRouter 作为路由器} 来自'react-router-dom';

<块引用>

8 | ReactDOM.render( 9 | 10 | 11 | ,

在 App.js 文件中包含导航组件后,出现无效钩子调用错误,下面是我的 app.js 文件代码

import React from "react";
import Home from "./components/Home";
import About from "./components/About";
import { Route, Switch } from "react-router-dom";
import Navigation from "./Navigation";
export default function App() {
  return (
    <div className="app">
      <Navigation />
      <Switch>
        <Route path="/about" component={About} />
        <Route path="/" component={Home} />
      </Switch>
    </div>
  );
}

移除导航组件后错误不出现下面是index.js文件代码

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import "../node_modules/bootstrap/dist/css/bootstrap.min.css";
import { BrowserRouter as Router} from 'react-router-dom';
ReactDOM.render(
  <Router>
    <App/>
  </Router>,
  document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: 
reportWebVitals();

导航.js

import { Navbar, Nav, Container } from 'react-bootstrap';
import React from 'react'

export default function Navigation() {
    return (
        <>
        <Navbar collapseOnSelect fixed="top" expand="sm" bg="dark" variant="dark">
            <Container>
            <Navbar.Toggle aria-controls="responsive-navbar-nav" />
            <Navbar.Collapse id="responsive-navbar-nav">
                <Nav>
                <Nav.Link href="/">Home</Nav.Link>
                <Nav.Link href="/about">About</Nav.Link>

                </Nav>
                </Navbar.Collapse>
            </Container>
        </Navbar>
        </>
    )
}

谁能帮我解决这个问题?

1 个答案:

答案 0 :(得分:0)

将 navigation.js 文件移动到 components 文件夹后它正在工作,我认为这就是 reactenter image description here 两个实例的原因 enter image description here