Quantcast
Channel: Active questions tagged header - Stack Overflow
Viewing all articles
Browse latest Browse all 653

NextJS error message: Failed prop type: The prop `href` expects a `string` or `object` in ``, but got `undefined` instead

$
0
0

I'm implementing a header from a GatsbyJS project into NextJS project and get the following error message:

"Error: Failed prop type: The prop href expects a string or object in <Link>, but got undefined instead."

When removing the following from the header.jsx it does not provide any error messages:<MenuButton item={{ icon: "/images/icons/hamburger.svg" }} />

Can you guide me on what I'm doing wrong?

This is my header.jsx file:

import React, { useEffect, useRef, useState } from "react";import styled from "styled-components";import Link from "next/link";import { menuData } from "../../data/menuData";import MenuButton from "../buttons/MenuButton.jsx";import Image from "next/image";import MenuTooltip from "../tooltips/MenuTooltip";export default function Header() {  const [isOpen, setIsOpen] = useState(false);  const ref = useRef();  const tooltipRef = useRef();  function handleClick(event) {    setIsOpen(!isOpen);    event.preventDefault();  }  function handleClickOutside(event) {    if (      ref.current &&      !ref.current.contains(event.target) &&      !tooltipRef.current.contains(event.target)    ) {      setIsOpen(false);    }  }  useEffect(() => {    document.addEventListener("mousedown", handleClickOutside);    return () => {      document.removeEventListener("mousedown", handleClickOutside);    };  }, []);  return (<Wrapper><Link href="/"><Logo><Image            src="/images/logos/logo.png"            alt="Logo"            width={120}            height={100}          /></Logo></Link><MenuWrapper count={menuData.length} ref={ref}>        {menuData.map((item, index) => (<MenuButton key={index} item={item} />        ))}<HamburgerWrapper onClick={(event) => handleClick(event)}><MenuButton item={{ icon: "/images/icons/hamburger.svg" }} /></HamburgerWrapper></MenuWrapper><div ref={tooltipRef}><MenuTooltip isOpen={isOpen} /></div></Wrapper>  );}

This is my menuTooltip.jsx file:

import React from "react";import styled from "styled-components";import { tooltipData } from "../../data/menuData";import MenuButton from "../buttons/MenuButton";export default function MenuTooltip(props) {  const { isOpen } = props;  return (<Wrapper isOpen={isOpen}>      {tooltipData.map((item, index) => (<MenuButton key={index} item={item} />      ))}</Wrapper>  );}

This is my MenuButton.jsx file:

import React from "react";import styled from "styled-components";import Link from "next/link";import { Caption } from "../styles/TextStyles";export default function MenuButton(props) {  const { item } = props;  return (<Link href={item.link} onClick={props.onClick} key={props}><MenuItem hasTitle={!item.title ? false : true}><img src={item.icon} />        {item.title}</MenuItem></Link>  );}

This is my menuData.jsx file:

export const menuData = [  { title: "Learn", icon: "/images/icons/learner02_dm.svg", link: "/learn" },  {    title: "Articles",    icon: "/images/icons/article_light.svg",    link: "/articles",  },  {    title: "Community",    icon: "/images/icons/community_light.svg",    link: "/community",  },  {    title: "Entrepreneurs",    icon: "/images/icons/business02_light.svg",    link: "/entrepreneurs",  },];export const footerMenuData = [  { title: "Learn", icon: "/images/icons/learner02_dm.svg", link: "/learn" },  {    title: "Articles",    icon: "/images/icons/article_light.svg",    link: "/articles",  },  {    title: "Community",    icon: "/images/icons/community_light.svg",    link: "/community",  },  {    title: "Entrepreneurs",    icon: "/images/icons/business02_light.svg",    link: "/entrepreneurs",  },  {    title: "Updates",    icon: "/images/icons/calendar_light.svg",    link: "/updates",  },  {    title: "Help",    icon: "/images/icons/help_light.svg",    link: "/help",  },];export const tooltipData = [  { title: "Learn", icon: "/images/icons/learner02_dm.svg", link: "/learn" },  {    title: "Articles",    icon: "/images/icons/article_light.svg",    link: "/articles",  },  {    title: "Community",    icon: "/images/icons/community_light.svg",    link: "/community",  },  {    title: "Entrepreneurs",    icon: "/images/icons/business02_light.svg",    link: "/entrepreneurs",  },];

Viewing all articles
Browse latest Browse all 653

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>