Задать вопрос
@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>
  • Вопрос задан
  • 180 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽