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

165
Views
React how to wrap each 3 elements in a div?

The intended output here should be each 3 divs (red) within a blue div. I don't understand what I am doing wrong because this should normally work.

// tried this method, https://stackoverflow.com/questions/63695426/react-wrap-every-3-components-into-a-div can't get it to work. 🤷‍♂️

const ImageGrid = ({slice} :any) => (

  slice?.items?.map((item :any, i:number) => {
    const myArrx :any = []
    myArrx.push(<Box bg={'red'} p={15}><img src={item.image.url} alt={item.image.alt} /></Box>)
    
    return myArrx.reduce((groups :any, curr:any) => {
      const arr : any[] = groups[groups.length - 1];      
      arr.push(curr);
      if (arr.length === 3) groups.push([]);
      return <Box bg={'blue'} p={15}>{groups}</Box>;
    }, [[]])
    
  })

)
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

I was trying to doit the hard way, here's the simple and elegant solution

const ImageGrid = ({slice} :any) => {
  const pack :any = []
  
  slice?.items?.map((item :any, i:number) => {
    pack.push(<Child data={item}/>)
  })
  
  const data2 = [...pack]
  const groupedData1 = []
  
  while(data2.length) {
    groupedData1.push(data2.splice(0, 3));
  }

  return (
    <>
      <Container maxW={1180} bg='orange'>
        <GridWrap>
          {groupedData1.map((el, i) => 
            <Parent>
              <HStack alignItems={'top'}> {el} </HStack>
            </Parent>
          )}
        </GridWrap>
      </Container>
    </>
  )
}
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!