Skip to content

Commit 3bb22a1

Browse files
committed
Keep original keys for slides
Skip auto-generated keys for slides if key already exist
1 parent c5301b5 commit 3bb22a1

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/track.jsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ var getSlideStyle = function (spec) {
5050
return style;
5151
};
5252

53+
var getKey = (child, fallbackKey) => {
54+
// key could be a zero
55+
return (child.key === null || child.key === undefined) ? fallbackKey : child.key;
56+
};
57+
5358
var renderSlides = (spec) => {
5459
var key;
5560
var slides = [];
@@ -75,7 +80,7 @@ var renderSlides = (spec) => {
7580
}
7681

7782
slides.push(React.cloneElement(child, {
78-
key: index,
83+
key: getKey(child, index),
7984
'data-index': index,
8085
className: cssClasses,
8186
style: assign({}, child.props.style || {}, childStyle)
@@ -88,7 +93,7 @@ var renderSlides = (spec) => {
8893
if (index >= (count - infiniteCount)) {
8994
key = -(count - index);
9095
preCloneSlides.push(React.cloneElement(child, {
91-
key: key,
96+
key: getKey(child, key),
9297
'data-index': key,
9398
className: cssClasses,
9499
style: assign({}, child.props.style || {}, childStyle)
@@ -98,7 +103,7 @@ var renderSlides = (spec) => {
98103
if (index < infiniteCount) {
99104
key = count + index;
100105
postCloneSlides.push(React.cloneElement(child, {
101-
key: key,
106+
key: getKey(child, key),
102107
'data-index': key,
103108
className: cssClasses,
104109
style: assign({}, child.props.style || {}, childStyle)

0 commit comments

Comments
 (0)