useState()破坏Gatsbyjs / React

时间:2019-12-09 03:47:46

标签: reactjs gatsby

我已经将useStats导入了索引页面,但是当我使用它时,它破坏了gatsby / react,并且出现此错误:

Error: Invalid hook call. Hooks can only be called inside of the body of a function component. 

可能由于以下原因之一而发生:

  1. 您可能使用的React和渲染器版本不匹配 (例如React DOM)
  2. 您可能正在违反挂钩规则。
  3. 您可能在同一应用程序中拥有多个React副本。有关如何调试和解决此问题的提示,请参见fb.me/react-invalid-hook-call。

我试图从网站上使用它进行射击:

// Add this in node_modules/react-dom/index.js
window.React1 = require('react');

// Add this in your component file
require('react-dom');
window.React2 = require('react');
console.log(window.React1 === window.React2);

但是我回来了。 这是我的代码:

import React, { useState } from "react";
import { Link } from "gatsby";

// components
import Layout from "../components/Layout/Layout";
import SEO from "../components/seo";
import IndexComponent from "../components/IndexComponent/IndexComponent";

const IndexPage = () => {
  const [sku] = useState();
  return (
    <Layout>
      <SEO title="Home" />
      <IndexComponent />
    </Layout>
  );
};

export default IndexPage;

2 个答案:

答案 0 :(得分:0)

我认为这是Windows的终端问题。

接缝可以很好地与bash配合使用。

答案 1 :(得分:0)

1。)您需要[sku, setSku] = useState()

2。)您要在哪里渲染IndexPage?,而不是IndexPage()是在做<IndexPage />