Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
TypeError: Cannot read properties of undefined (reading 'map') NEXTJS

I am trying to fetch an image from this API by using getStaticProps but I can't seem to get it.

If I add a '?' to the code like this then in the log it says 'undefined'. Why can't I fetch it?

<div>
  {hotelPics.map((hotelpic)=> (
  <Image src={hotelpic.url} />
  ))}
</div>

This is the code:

import Image from 'next/image';
import React from 'react'


function Images({hotelPics }) {
 
    console.log(hotelPics);
    
    return (
        <div>
    {hotelPics.map((hotelpic)=> (
        <Image src={hotelpic.url}/>
    ))}    
        </div>
    )
}

export async function getStaticProps() {
    const res= await fetch ('https://obmng.dbm.guestline.net/api/hotels?collection-id=OBMNG')
    const hotelPics = await res.json()

return {
    props: {
        hotelPics,
    },
}

}

export default Images
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

getStaticProps are "compiling" at build time, so you need to check isFallback variable

Also, you have nested images array in hotelPics array returned from getStaticProps

import Image from 'next/image';
import { useRouter } from 'next/router';
import React from 'react'


function Images({hotelPics}) {
  const router = useRouter();
  if (router.isFallback) {
    return <h1>Loading...</h1>;
  }

    //console.log(hotelPics.images)
    return (
        <div>
        {hotelPics.map((hotelpic)=> (
            hotelpic.images.map((image) => (
              //replace here with Image tag
              <p key={image.url}>{image.url}</p>
              )
            )
        ))}    
        </div>
    )

    
}

export async function getStaticProps() {
    const res= await fetch ('https://obmng.dbm.guestline.net/api/hotels?collection-id=OBMNG')
    const hotelPics = await res.json()

return {
    props: {
        hotelPics,
    },
}

}

export default Images
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!