@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>
  • Вопрос задан
  • 78 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы