diff --git a/packages/components/carousel/__tests__/carousel.test.tsx b/packages/components/carousel/__tests__/carousel.test.tsx
index 3b49a52653..22bba380bc 100644
--- a/packages/components/carousel/__tests__/carousel.test.tsx
+++ b/packages/components/carousel/__tests__/carousel.test.tsx
@@ -195,4 +195,30 @@ describe('Carousel', () => {
await wait(60)
expect(items[1].classList.contains('is-active')).toBeTruthy()
})
+ it('should guarantee order of indicators', async () => {
+ const data = reactive([1, 2, 3, 4])
+ wrapper = mount({
+ setup() {
+ return () => (
+
+
+ {data.map((value) => (
+
+ {value}
+
+ ))}
+
+
+ )
+ },
+ })
+ await nextTick()
+
+ data.splice(1, 0, 5)
+ await nextTick()
+ const indicators = wrapper.findAll('.el-carousel__button')
+ data.forEach((value, index) => {
+ expect(indicators[index].element.textContent).toEqual(value.toString())
+ })
+ })
})
diff --git a/packages/components/carousel/src/carousel.vue b/packages/components/carousel/src/carousel.vue
index 301e1bfee3..ab9047fbda 100644
--- a/packages/components/carousel/src/carousel.vue
+++ b/packages/components/carousel/src/carousel.vue
@@ -64,7 +64,7 @@