diff --git a/src/runtime/components/data/Table.vue b/src/runtime/components/data/Table.vue index e5b411340a..484f5c36b2 100644 --- a/src/runtime/components/data/Table.vue +++ b/src/runtime/components/data/Table.vue @@ -326,15 +326,18 @@ export default defineComponent({ } function selectAllRows () { + // Create a new array to ensure reactivity + const newSelected = [...selected.value] + + // If the row is not already selected, add it to the newSelected array props.rows.forEach((row) => { - // If the row is already selected, don't select it again - if (isSelected(row)) { - return + if (!isSelected(row)) { + newSelected.push(row) } - - // @ts-ignore - selected.value.push(row) }) + + // Reassign the array to trigger Vue's reactivity + selected.value = newSelected } function onChange (checked: boolean) {