1

I imported useState from react but I'm getting the following error: "React Hook "useState" is called in function "navbar" that is neither a React function component nor a custom React Hook function."

Is there something wrong with the use case of this component?

import React, { useState } from "react";
import { Link } from "react-router-dom";
import { MdFingerprint } from "react-icons/md";
import { FaBars, FaTimes } from "react-icons/fa";

function navbar() {
  const [click, setClick] = useState(false);

  const handleClick = () => setClick(!click);

  return (
    <>
      <div className="navbar">
        <div className="navbar-container container">
          <Link to="/" className="navbar-logo">
            <MdFingerprint className="navbar-icon" />
            Lively
          </Link>
          <div class="menu-icon" onClick={handleClick}>
            {click ? <FaTimes /> : <FaBars />}
          </div>
        </div>
      </div>
    </>
  );
}

export default navbar;

3 Answers3

2

Component names should start with capital letters:

function Navbar() {

See more in the official documentation.

falinsky
  • 7,229
  • 3
  • 32
  • 56
-1

React component names need to start with a capital letter. Try renaming it to Navbar.

obasilakis
  • 19
  • 3
-1

Try to capitalize 'Navbar' like

function Navbar() {
  const [click, setClick] = useState(false);
  const handleClick = () => setClick(!click);
  return (
<>
  <div className="navbar">
    <div className="navbar-container container">
      <Link to="/" className="navbar-logo">
        <MdFingerprint className="navbar-icon" />
        Lively
      </Link>
      <div class="menu-icon" onClick={handleClick}>
        {click ? <FaTimes /> : <FaBars />}
      </div>
    </div>
  </div>
</>
  );
}
export default Navbar;

In React, components need to be capitalized

Tiago Vaccari
  • 1,116
  • 7
  • 16