skip to Main Content

I have imported useStats into my index page but when I use it it breaks gatsby/react and I get this error:

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

This could happen for one of the following reasons:

  1. You might have mismatching versions of React and the renderer
    (such as React DOM)
  2. You might be breaking the Rules of Hooks.
  3. You might have more than one copy of React in the same app See fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.

I tried to trouble shoot using this from the site:

// 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);

But I got back true.
Here is my code:

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

Answers


  1. Chosen as BEST ANSWER

    I think It is a terminal Issue with windows.

    Seams to work fine with bash.


  2. 1.) you need [sku, setSku] = useState().

    2.) Where are you rendering IndexPage? Are you doing IndexPage() instead of <IndexPage />?

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search