естественно должны, это же для сравнения по дому и изменения модели нужно
Для одной и той же сущности key должен быть всегда одинаковым вне зависимости от положения этой сущности в массиве
причем тут сущность и индекс в массиве про который вопрос? либо я таки контекст потерял
Мне говорят что индекс должен постоянно меняться, я говорю нет, потому что если было так, мы могли использовать индексы
Ты рендеришь Васю и Петю. У Васи всегда должен быть Васин key, у Пети — Петин. Если поменять в массиве Васю с Петей местами, то у Васи должен остаться Васин key, у Пети — Петин
Они тебя обманывают
я про вот такой подход или я тут не прав? в общем (e, i) => key={i} нельзя, (e, i) => key={e.id} пожалуйста
Мне обещали показать пример с списками ul li где доказано что в документации ошибки ... и буду ждать ... спасибо за ответ)
«Вот такой подход» можешь словами обьяснить?
в качестве ключа использовать итератор нельзя, а ИД элемента можно и нужно
Итератор? Что такое итератор?
обычный индекс элемента в массиве
Спокойнее. Видишь же, что «итераторы» — это не «просто индексы в массиве»?
Кек, там тоже самое пишут
но мы говорим про рендер вероятнее всего методом map который вторым параметром берет индекс, данным методом мы перебираем итерируем массив (for in) где в качестве итератора используется именно индекс элемента, а не сам элемент, где и что я перепутал?
Где ты перепутал — итератором является перебираемый массив. А for in тут не при чем
Короче, тут ты прав. Почти. Не «нельзя», а «можно с ограничениями». Не «пожалуйста», а «можно без ограничений». Ты путаешься в терминах и названиях, на чем я тебя пытался подловить, но мне лень продолжать. Для углубления и закрепления советую learnjavascript
А про ключи — советую эту статью, раздел про Lists https://overreacted.io/react-as-a-ui-runtime/#lists
я бы тут тоже поспорил, но лень
Мне лень, поэтому я выложил перед тобой всё, что нужно. Тебе лень, но ты просто сказал об этом. Окееей)
массив !== итератор ) у него есть только метод. массив === итерируемый объект. так что не все выложил
Итерируемый объект === итератор === перебираемый объект === iterable Любой массив является итератором, но не любой итератор является массивом
Итерируемый объект !== Итератору
👍🏿 Да, я допустил ошибку в терминологии (хотелось бы сказать «намеренно», но нет). Слава богу, это никак не меняет наши с @Skazi_Premiere заключения
Обсуждают сегодня