fix(Table): data outdated when rows change (#2600)

This commit is contained in:
kyyy
2024-11-12 00:44:49 +07:00
committed by GitHub
parent 7154254ac2
commit b23f2decfc

View File

@@ -105,6 +105,7 @@
<slot
v-else
:key="retriggerSlot"
:name="`${column.key}-data`"
:column="column"
:row="row"
@@ -132,7 +133,7 @@
</template>
<script lang="ts">
import { computed, defineComponent, toRaw, toRef } from 'vue'
import { computed, defineComponent, ref, toRaw, toRef, watch } from 'vue'
import type { PropType, AriaAttributes } from 'vue'
import { upperFirst } from 'scule'
import { defu } from 'defu'
@@ -284,6 +285,8 @@ export default defineComponent({
})
})
const retriggerSlot = ref(null)
const savedSort = { column: sort.value.column, direction: null }
const rows = computed(() => {
@@ -466,6 +469,12 @@ export default defineComponent({
return undefined
}
watch(rows, () => {
retriggerSlot.value = new Date()
}, {
deep: true
})
return {
// eslint-disable-next-line vue/no-dupe-keys
ui,
@@ -493,7 +502,8 @@ export default defineComponent({
toggleOpened,
getAriaSort,
isExpanded,
shouldRenderColumnInFirstPlace
shouldRenderColumnInFirstPlace,
retriggerSlot
}
}
})