无效的 Hook Call use-neo4j

Invalid Hook Call use-neo4j

我最近开始构建一个 React 应用程序。 我想配置一个附加到应用程序的 neo4j 数据库。我决定使用 use-neo4j 钩子。我按照这样创建驱动程序实例的基本步骤:

import React from "react";
import ReactDOM from "react-dom";
import "./css/index.css";
import App from "./js/App";
import Nav from "./js/Nav";
import { Neo4jProvider, createDriver } from "use-neo4j";

const driver = createDriver("neo4j", "localhost", 7687, "lode", "neo4j");

ReactDOM.render(
  <React.StrictMode>
    <Neo4jProvider driver={driver}>
      <Nav />
      <App />
    </Neo4jProvider>
  </React.StrictMode>,
  document.getElementById("root")
);

但我最终遇到了 Invalid Hook Call 错误。 除非我删除 Neo4jProvider 标签 在此图片中看到

我尽我所能来修复它,我是 React 的新手。 如果可以的话,我希望有人能帮助我。

正如错误所说,您只能在功能组件的主体内调用钩子。所以我可能会创建一个启动驱动程序的组件和 returns 使用它的组件 -

import { Neo4jProvider, createDriver } from "use-neo4j";

const NeoProvider = ({ children }) => {
  const driver = createDriver("neo4j", "localhost", 7687, "lode", "neo4j");

  return (
    <Neo4jProvider driver={driver}>
      {children}
    </Neo4jProvider>
  );
}

然后在您的顶层导入它,并使用它代替您从包中导入的 Neo4jProvider

解决了这个问题,我有多个 Reactjs 运行