Bhaskar Rai
Bhaskar Rai

Reputation: 1

Why I am getting this error: "Each child should have a unique key prop"

Getting this error "Each child should have a unique key prop"

My code is as follows

import React, { useState } from 'react'

export default function Folder({ datas }) {
  const [toggleFolder, setToggleFolder] = useState(false);

  return (
    <>

      <div
        onClick={() => setToggleFolder(prev => !prev)}
        className='cursor-pointer'>📁 {datas.folder}</div>
     
     
      <div
        key={datas.id}
        style={{ display: toggleFolder ? "block" : "none" }}
        className='pl-[20px]'
      >
        {
          datas.children && datas.children.length > 0 ?
            datas.children.map((key, index) => {
              return <Folder datas={key} />
            })
            : <p className='opacity-70'>empty</p>
        }
      </div>
    </>
  )
}

Upvotes: -2

Views: 51

Answers (2)

baliman
baliman

Reputation: 620

You should add this key=index.

<Folder key={index} data={key}/>

Upvotes: -1

Shah Vipul
Shah Vipul

Reputation: 747

import React, { useState } from 'react';

export default function Folder({ datas }) {
  const [toggleFolder, setToggleFolder] = useState(false);

  return (
    <>
      <div
        onClick={() => setToggleFolder(prev => !prev)}
        className='cursor-pointer'
      >
        📁 {datas.folder}
      </div>

      <div
        key={datas.id}
        style={{ display: toggleFolder ? "block" : "none" }}
        className='pl-[20px]'
      >
        {datas.children && datas.children.length > 0 ? (
          datas.children.map(child => (
            <Folder key={child.id} datas={child} />
          ))
        ) : (
          <p className='opacity-70'>empty</p>
        )}
      </div>
    </>
  );
}

Even after it remains try adding an index

(
 datas.children.map(child,index) => (
    <Folder key={index} datas={child} />
))

Upvotes: -1

Related Questions