Ключ React в обертке
Просматривая нашу кодовую базу, я нашел код, который выглядит примерно так:
const Carousel = ({ items }) => {
return (
<CarouselOuter>
{items.map((item) => (
<CarouselItemWrapper>
<CarouselItem key={item.key}>
...
</CarouselItem>
</CarouselItemWrapper>
)}
</CarouselOuter>
);
}
Обратите внимание, что свойство on , а не компонент, который напрямую возвращается из
items.map
. Кажется, это работает нормально, и в консоли нет предупреждений, но это противоречит каждому примеру, который я видел с использованием
map
в Реакте.
Я хочу знать, есть ли хороший аргумент (особенно в отношении производительности) для изменения кода с помощью
key
как показано ниже, или если это просто стилистический выбор:
const Carousel = ({ items }) => {
return (
<CarouselOuter>
{items.map((item) => (
<CarouselItemWrapper key={item.key}>
<CarouselItem>
...
</CarouselItem>
</CarouselItemWrapper>
)}
</CarouselOuter>
);
}
Примечание:
CarouselOuter
,
CarouselItem
, а также
CarouselItemWrapper
все styled-components , но я сомневаюсь, что это актуально.