Задать вопрос
@kiberchainik
начинающий найкрутейшЫй програмЁр

Почему выходит ошибка Each child in a list should have a unique «key» prop?

Почему выходит ошибка Each child in a list should have a unique "key" prop?
когда я выставил элементу key={Math.random()}
location.pathname.split('/').map((crumb, idx) => {
    if(idx === 0) crumbs[idx] = {path: '/', title: 'Home'}
    if(idx === 1) crumbs[idx] = {path: crumb, title: crumb}
    if(idx > 1) crumbs[idx] = {path: crumbs[idx-1].title+'/'+crumb, title:crumb}
  })

<ol className={styles.breadcrumbsList} key={Math.random()}>
        {crumbs.map((crumb, idx) => 
          <>
            {idx >= 1 && <div> / </div>}
            <Crumb path={crumb.path} title={crumb.title} style={styles.crumbs} key={Math.random()} />
          </>
        )}
      </ol>
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
key надо выставлять не для Crumb, а для фрагмента:
<React.Fragment key={...}>
    {idx >= 1 && <div> / </div>}
    <Crumb path={crumb.path} title={crumb.title} style={styles.crumbs} />
</React.Fragment>


ну и Math.random() для key - худшее, что ты мог придумать. Наверняка у crumb есть какой-нибудь id, вот его и надо использовать. Или, например, path, title, - что-то из них ведь уникальное, не повторяется в массиве crumbs?
на крайний случай можно idx
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽